Thread (13 messages) flat view 13 messages, 4 authors, 2016-06-15

RE: [PATCH] git-svn: allow dcommit to retain local merge information

From: Joakim Tjernlund <hidden>
Date: 2016-06-15 22:43:17

Possibly related (same subject, not in this thread)

 
-----Original Message-----
From: Eric Wong [mailto:normalperson@yhbt.net] 
Sent: den 20 juni 2007 08:56
To: Joakim Tjernlund
Cc: Junio C Hamano; Steven Grimm; git@vger.kernel.org
Subject: Re: [PATCH] git-svn: allow dcommit to retain local 
merge information

Joakim Tjernlund [off-list ref] 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
quoted
quoted
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
quoted
quoted
with dcommit.  Commits written to SVN will still not have 
any merge
quoted
quoted
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
quoted
quoted
   new calls to cat-file.

 Joakim/Steven:
   Any further testing and test cases would be 
appreciated.  Be very
quoted
quoted
   careful with real-world repositories, and run dcommit with the
   '-n' flag before actually committing to verify the 
diffs are sane.
quoted
quoted
  Thanks
Did 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
quoted
  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-ubo
ot-1.1.4, 2
quoted
  Found branch parent: (tags/snap-uboot-1.1.4) 
81eef14963597cc99ba375f52e6d0b3bc09e25f8
quoted
  Following parent with do_update
  Successfully followed parent

Is it possible to speed up do_update?
Use a do_switch()-enabled SVN to avoid do_update().  do_update will
redownload everything.  I have patched 1.4.3 debian packages 
with source
and a diff here: http://git-svn.bogomips.org/svn.  SVN 1.4.4 claims to
have fixed the bindings, but 1.4.3 claimed the same thing, too...
Confirmation of it working in SVN 1.4.4 would be nice.
Confirmed as requested, I installed 1.4.4(Gentoo) an ran the
same test case. Now I see "Following parent with do_switch"
instead and it is almost instant. It felt though that
git-svn was somewhat slower importing large diffs.

 Jocke
quoted
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?
Not with the current version.  The 1.5.0 (or previous, I 
forget) allowed
forced-parenting with: "git-svn fetch <rev>=<commit>" but I figured
nobody was using it, and it would be difficult to get working since
fetch can now works on multiple trees and the same revision 
numbers can
appear in multiple trees.
If you reconsider this, please let me know.

 Jocke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help