Re: git and bzr
- From
Sean <seanlkml@sympatico.ca>
- Date
- Nov 28, 2006, 00:40 UTC
- Message-ID
- <BAYC1-PASMTP03D791B2FF9E3AE0397A3CAEE50@CEZ.ICE>
- In-Reply-To
- <456B7C6A.80104@webdrake.net>
On Tue, 28 Nov 2006 01:01:46 +0100 Joseph Wakeling <joseph.wakeling@webdrake.net> wrote:
> First off a really dumb one: how do I identify myself to git, i.e. give > it a name and email address? Currently it uses my system identity, > My Name <username@computer.(none)>. I haven't found any equivalent of > the bzr whoami command.
Assuming you have a recent version of git, then:
$ git repo-config --global user.email "you@email.com" $ git repo-config --global user.name "Your Name"
Will setup a ~/.gitconfig in your home directory; these settings will apply in any repo you use. Drop the "--global" to set them per repo.
Show 5 quoted lines
> With this in mind, is there any significance to the "master" branch (is > it intended e.g. to indicate a git repository's "stable" version > according to the owner?), or is this just a convenient default name? > Could I delete or rename it? Using bzr I would normally give the > central branch(*) the name of the project.
It's just a common convention and carries no special significance; rename away!
> Any other useful comments that can be made to a bzr user about working > with this difference, positive or negative aspects of it?
Don't be afraid to git-clone your local repo, especially with the -l and -s options. That will get you a separate repo/working directory while not taking up much extra disk space (objects from your first repo will be shared with the second).
Once you get comfortable with multiple branches in a single repo/ working directory, it often is much better than the alternatives. But the above gives you the option to work either way.
Show 9 quoted lines
> Next question ... one of the reasons I started seriously thinking about > git was that in the VCS comparison discussion, it was noted that git is > a lot more flexible than bzr in terms of how it can track data (e.g. the > git pickaxe command, although I understand that's not in the released > version [1.4.4.1] yet?). A frustration with bzr is that pulling or > merging patches from another branch or repo requires them to share the > same HEAD. Is this a requirement in git or can I say, "Hey, I like that > particular function in project XXX, I'm going to pull that individual > bit of code and its development history into project YYY"?
The Git cherry-pick command lets you grab specific commits from other branches in your repo. But cherry-pick works at the commit level, there is no easy way to grab a single function for instance and merge just its history into another branch.
However, you can merge an entire separate project into yours even though they don't share a base commit. This has been done several times in the history of Git itself. For instance you can see two separate "initial" commits in the Git repo with a command like "gitk README gitk" which gives a graphical history of the "gitk" and "README" files and shows each started life in a separate initial commit. Use "git show 5569b" to see Linus bragging on this first separate-project-merge and give some more details.
> Last off (for now, I'm sure I'll think of more): is there any easy (or > difficult) way to effectively import version history from a bzr > repository, and vice versa?
Don't think a direct bridge between the two has been written yet.
Cheers, Sean