Sunday, August 9, 2009

Mercurial Source Control

I'm trying out Objective-J and Cappuccino and along with this I want to try Mercurial source control.
[greg:javascript] hg init MyCappuccino
[greg:javascript] cd MyCappuccino
[greg:MyCappuccino] ls -al
total 0
drwxr-xr-x   3 greghelton  staff  102 Aug  9 20:14 .
drwxr-xr-x  19 greghelton  staff  646 Aug  9 17:03 ..
drwxr-xr-x   8 greghelton  staff  272 Aug  9 17:06 .hg
[greg:MyCappuccino] touch Person.j
[greg:MyCappuccino] mate . 
[greg:MyCappuccino] hg add
adding Person.j
[greg:MyCappuccino] hg commit -m "Initial Commit"
Enter hg (the chemical symbol for mercury) and Mercurial will list its basic commands:
[greg:MyCappuccino] hg
Mercurial Distributed SCM

basic commands:

 add        add the specified files on the next commit
 annotate   show changeset information by line for each file
 clone      make a copy of an existing repository
 commit     commit the specified files or all outstanding changes
 diff       diff repository (or selected files)
 export     dump the header and diffs for one or more changesets
 forget     forget the specified files on the next commit
 init       create a new repository in the given directory
 log        show revision history of entire repository or files
 merge      merge working directory with another revision
 parents    show the parents of the working directory or revision
 pull       pull changes from the specified source
 push       push changes to the specified destination
 remove     remove the specified files on the next commit
 serve      export the repository via HTTP
 status     show changed files in the working directory
 update     update working directory
hg help [command] for a command will list specific information:
[greg:MyCappuccino] hg help init
hg init [-e CMD] [--remotecmd CMD] [DEST]

create a new repository in the given directory

    Initialize a new repository in the given directory. If the given
    directory does not exist, it will be created.

    If no directory is given, the current directory is used.

    It is possible to specify an ssh:// URL as the destination.
    See 'hg help urls' for more information.

options:

 -e --ssh        specify ssh command to use
    --remotecmd  specify hg command to run on the remote side

use "hg -v help init" to show global options
And, the Objective-J is way cool. Get the starter tutorial.
@import 

@implementation AppController : CPObject
{
}

- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
    var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero()  
        styleMask:CPBorderlessBridgeWindowMask], 
        contentView = [theWindow contentView];
 
    var thePanel = [[CPPanel alloc] initWithContentRect:CGRectMake(10.0, 30.0, 225.0, 125.0)  
       styleMask:CPHUDBackgroundWindowMask | CPClosableWindowMask],
       panelContentView = [thePanel contentView];
 
    [thePanel setDelegate:self];

    var label = [[CPTextField alloc] initWithFrame:CGRectMake(75.0, 37.5, 75.0, 25.0)];
    [label setBezeled:YES];
    [label setBezelStyle:CPTextFieldSquareBezel];
    [label setPlaceholderString:@"Enter text"];
    [label setEditable:YES];

    [panelContentView addSubview:label];

    [theWindow orderFront:self];
    [thePanel orderFront:self];

}

-(BOOL)WindowShouldClose:(id)window 
{
 console.log("window should close"); 
}

@end