Re: git-svn and huge data and modifying the git-svn-HEAD branch directly
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Mar 1, 2006, 15:53 UTC
- Message-ID
- <Pine.LNX.4.64.0603010745320.22647@g5.osdl.org>
- In-Reply-To
- <44056BF1.6000109@op5.se>
On Wed, 1 Mar 2006, Andreas Ericsson wrote:
Show 11 quoted lines
> > Eric Wong wrote: > > > > Should rev-parse be taught to be less strict and look for basenames > > that can't be found in heads/ and tags/ in other directories? > > It already does. The search order is this, for a ref named 'foo': > $GIT_DIR/foo > $GIT_DIR/refs/foo > $GIT_DIR/refs/tags/foo > $GIT_DIR/refs/heads/foo
Yes, but I think Eric wanted to avoid having to write the prefix part, which git won't let you do right now.
If you have a ref in .git/refs/svn-tracker/git-svn-HEAD, you would have to write out all of "svn-tracker/git-svn-HEAD", because unlike a "real branch", get_sha1() won't look into the "svn-tracker" without it being explicitly mentioned.
Now, some tools will actually do "for_each_ref()" and check the ref-name against each of them (so if you pass in "foo", it will check them afainst _any_ ref-subdirectory that contains "foo"). But get_sha1() won't.
We could fix get_sha1(), but part of the logic was that other subdirectories are special, and as such they _should_ be mentioned, so that a file in such a special directory isn't ever confused with a real branch.
But if you were to use for example .git/refs/git-svn/tracking as the svn-tracking reference head, and then you'd be perfectly able to use
git log git-svn/tracking..
to see what you've done since the last svn import?
(or use HEAD, if you prefer that over "tracking")
Linus