Re: [GSoC update extra!] git-remote-svn: Week 8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jonathan Nieder wrote:

> Git has all the blobs and all the trees, so except for the mapping
> between marks, subversion revs, and git revs, svn-fe does not need to
> persist much data at all.
> 
> Of course, that requires that the fast-import stream is going directly
> to git.

One more thought.

If we are tracking the history of separate subversion branches separately,
then reading back trees includes an oddity:

Suppose someone tries to reimplement git-svn on top of svn-fe[1].

 $ git svn --fe clone --stdlayout http://path/to/some/svn/root

Behind the scenes, git-svn processes the fast-import stream it is
receiving and writes its _own_ fast-import stream with paths munged
and commits split up into separate commits on each branch.  Good.

Now the oddity: suppose that in the repository, svn-fe finds an

 svn copy branches@r11 branches-old

operation.  In other words, it needs the tree for
http://path/to/some/svn/root/branches@r11.  This does not correspond
to a single git tree, since the content of each branch has been given
its own commit.

However, this does not seem to be fatal: one could just make
‘git svn --fe’ build a branch with the full history at the same time
as it builds the other branches.  Ugly, but I don’t see another way
around it without making svn-fe and ‘git svn --fe’ know more about
each other than I would like.

Jonathan

[1] Eric, we are discussing the remote-svn series[2] and especially
Ram, Sverre, and David’s recent comments[3].  Apologies for not
keeping you in the loop sooner; your insights have always been
helpful in the past.

As for the idea of reimplementing git-svn on top of svn-fe: yes, the
fast-import stream would need more information to support
--follow-parent, but that piece is not so hard to add AFAICT.  Of
course, I am mentioning this not because it is important to keep the
git-svn interface but because the --stdlayout feature is very useful
and we may want to port it over some day.

[2] http://thread.gmane.org/gmane.comp.version-control.git/149571
[3] http://thread.gmane.org/gmane.comp.version-control.git/149594
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]