Latest Posts

GitPrimer

Since we're planning to move to git eventually, I'll start collecting notes on this page. This should be a user's guide by the time we're done.

Comparison with Bazaar

Action bzr git
Switch to trunk cd ../trunk git checkout master
Update trunk and merge into local branch cd ../trunk; bzr pull lp:widelands; cd ../<branch>; bzr merge ../trunk; bzr commit -m "Merged trunk." git pull --rebase upstream master; git push origin <branch> --force
Show branches, with the current one highlighted Use operating system to list directories git branch
Delete remote branch Use Launchpad interface git push origin --delete <branch_name>
Delete local branch Use operating system to delete directory git branch -d <branch_name>
Undo all changes bzr revert git checkout .
Undo changes to a file bzr revert <file> git checkout <file>
Get a remote branch and switch to it bzr branch <remote_branch_name> <new_local_branch>; cd <new_local_branch> git checkout -b <new_local_branch> <remote_location>/<remote_branch_name>

Checking out into subdirectories

Since our bottleneck is compile time rather than disk space, we will want to be able to check out into subdirectories, just like Bazaar does it. There are 2 ways of doing this:

  1. Clone the full repository into a new directory and set up the remotes each time. This will support submodules.
  2. Use git worktree (manual blog). This command will create a separate copy of submodules too, but can handle only 1 level.