git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: native-git-svn: A Summer of Code 2010 proposal

From
Avery Pennarun <apenwarr@gmail.com>
Date
Mar 19, 2010, 21:30 UTC
Message-ID
<32541b131003191430ld0eaa9cw1d2aac08cff15682@mail.gmail.com>
In-Reply-To
<fabb9a1e1003191139v6ea37df3uba441f2cba9bc992@mail.gmail.com>
On Fri, Mar 19, 2010 at 2:39 PM, Sverre Rabbelier <srabbelier@gmail.com> wrote:
Show 12 quoted lines
> On Fri, Mar 19, 2010 at 19:32, Avery Pennarun <apenwarr@gmail.com> wrote:
>> - all those "extra commands" that git-svn supports are considered
>> backwards compatibility, even if they're absolutely obsolete because
>> of newer commands, and therefore will be very hard to justify getting
>> rid of
>
> I don't think this is true. The proposal is to implement
> git-remote-svn, which would allow _native_ interaction with svn
> repositories, so without using 'git svn'. It would allow 'git clone
> svn://example.com/myrepo' and subsequent "git pull"s from that svn
> source. Do you agree that makes (part of) your comments moot, or am I
> missing something?
I don't know enough about the proposal to comment on this part of the design.

I do know that where git-svn fits into git's UI has not been the problem for me or my co-workers; we can learn some weirdo syntax if needed. Things like branching and merging, and git-svn redownloading the same stuff 100 times, and oddly-named-svn-branch-hierarchies, and git pulling between git-svn users, however, have given us lots of grief.

For example, I'd be very happy to learn that your new design would allow two people to independently pull from svn://, do work in their respective copies of the git repositories, branch and merge all day long, pull from each other, and then push back to svn without a) making a mess of the svn repo and causing zillions of conflicts, or b) linearizing history and losing git's complex DAG.

In the current version of git-svn this is very hard. 'git svn dcommit' generates entirely new git commit objects corresponding to the ones that were created in svn... but which nevertheless have your merge history included, which is awesome. But if a new person clones the svn repo from scratch, he will end up with git commits corresponding to those same ones from svn, but *without* the merge history, and therefore with different commit ids, and which therefore prevent push/pulling between other people who have cloned the repo.

If the above explanation doesn't make any sense, let me know and I can clarify it further. If you know what I'm talking about and have either solved it or don't care about that use case, please just ignore me and I'll go back to hide in my hole :)

Have fun,
Avery
Previous: Sverre RabbelierNext: Ramkumar Ramachandra
Message 4 of 33 in “native-git-svn: A Summer of Code 2010 proposal”
  1. Ramkumar RamachandraMar 19, 2010
  2. Avery PennarunMar 19, 2010
  3. Sverre RabbelierMar 19, 2010
  4. Avery PennarunMar 19, 2010
  5. Ramkumar RamachandraMar 20, 2010
  6. Johannes SchindelinMar 20, 2010
  7. Ramkumar RamachandraMar 20, 2010
  8. Ramkumar RamachandraMar 20, 2010
  9. Jonathan NiederMar 20, 2010
  10. Johannes SchindelinMar 21, 2010
  11. Jonathan NiederMar 21, 2010
  12. Johannes SchindelinMar 21, 2010
  13. Ramkumar RamachandraMar 21, 2010
  14. Johannes SchindelinMar 21, 2010
  15. Sverre RabbelierMar 21, 2010
  16. Jonathan NiederMar 21, 2010
  17. Daniel BarkalowMar 22, 2010
  18. Christian CouderMar 22, 2010
  19. Ramkumar RamachandraMar 22, 2010
  20. Johannes SchindelinMar 22, 2010
  21. Best example of GSoC student participation (was: Re: native-git-svn: A Summer of Code 2010 proposal)Jakub Narebski, Mar 21, 2010
  22. Johannes SchindelinMar 21, 2010
  23. Daniel BarkalowMar 20, 2010
  24. Ramkumar RamachandraMar 20, 2010
  25. Ramkumar RamachandraMar 21, 2010
  26. Daniel BarkalowMar 21, 2010
  27. Ilari LiusvaaraMar 21, 2010
  28. Peter BaumannMar 21, 2010
  29. Dave OlszewskiMar 21, 2010
  30. Jonathan NiederMar 19, 2010
  31. Johannes SchindelinMar 19, 2010
  32. Johannes SchindelinMar 22, 2010
  33. Ramkumar RamachandraMar 23, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.