Re: [PATCH] git-svn: allow dcommit to retain local merge information
From: Eric Wong <hidden>
Date: 2016-06-15 22:43:17
Possibly related (same subject, not in this thread)
- 2016-06-15 · RE: [PATCH] git-svn: allow dcommit to retain local merge information · Tjernlund <hidden>
Joakim Tjernlund [off-list ref] wrote:
On Wed, 2007-06-13 at 19:13 +0200, Joakim Tjernlund wrote:quoted
On Wed, 2007-06-13 at 02:23 -0700, Eric Wong wrote:quoted
dcommit will still rewrite the HEAD commit and the history of the first parents of each HEAD~1, HEAD~2, HEAD~3 as it always has. However, any merge parents (HEAD^2, HEAD^^2, HEAD~2^2) will now be preserved when the new HEAD and HEAD~[0-9]+ commits are rewritten to SVN with dcommit. Commits written to SVN will still not have any merge information besides anything in the commit message. Thanks to Joakim Tjernlund, Junio C Hamano and Steven Grimm for explanations, feedback, examples and test case. Signed-off-by: Eric Wong <redacted> --- This is a better patch that replaces the previous one. Junio: This one is a big change and should probably sit in pu or next for a bit. Double-checking the logic in linearize_history() would be greatly appreciated, too. I don't think there are any regressions for the already-linear-history case besides slightly reduced performance for new calls to cat-file. Joakim/Steven: Any further testing and test cases would be appreciated. Be very careful with real-world repositories, and run dcommit with the '-n' flag before actually committing to verify the diffs are sane. ThanksDid a little testing and so far it looks good :) Sidenote: Doing this git-svn init -t tags -T trunk -b branches file:///usr/local/src/tst-git-svn/svn-uboot-repo git-svn fetch --quiet makes git svn fetch stop for rather long periods in do_update: Found possible branch point: file:///usr/local/src/tst-git-svn/svn-uboot-repo/trunk => file:///usr/local/src/tst-git-svn/svn-uboot-repo/tags/snap-uboot-1.1.4, 2 Found branch parent: (tags/snap-uboot-1.1.4) 81eef14963597cc99ba375f52e6d0b3bc09e25f8 Following parent with do_update Successfully followed parent Is it possible to speed up do_update? Lastly, when adding the above u-boot svn repo into a fresh u-boot clone from WD, can I attach the svn tree to git u-boot tree without using a graft? I want to be able to recreate my own git repo by cloning the orginal u-boot repo and the svn repo. JockeTried using --no-metadata(git svn clone --no-metadata) in my little test script I sent earlier and got "Unable to determine upstream SVN information from HEAD history" when dcommiting, -i trunk didn't help either. It is not entierly clear to me what --no-metadata means to me. Does git-svn still rewrite commits?
--no-metadata is really only useful for people doing one-shot imports and abandoning SVN. It leaves out the git-svn-id: lines at the bottom of commit messages, but still sets the committer/author names/email/date to what is in the SVN repository.
I can't rebuild rev_db file, if lost, but I guess I could still do a new git-svn clone and restore my repo? I guess I lose something if I do that but what?
If you lose your rev_db file with no-metadata, you'll have to redo the git-svn clone
Also don't really understand why git-svn log doesn't work, can't it get that info from the svn repo?
Getting git-svn log working with --no-metadata would require radically different code. dcommit would be very different, too. So yes, they don't work because I'm lazy. -- Eric Wong