[Assorted-commits] SF.net SVN: assorted:[1064] sandbox/trunk/src/git/gitsvn.bash
Brought to you by:
yangzhang
From: <yan...@us...> - 2008-11-06 19:57:08
|
Revision: 1064 http://assorted.svn.sourceforge.net/assorted/?rev=1064&view=rev Author: yangzhang Date: 2008-11-06 19:56:45 +0000 (Thu, 06 Nov 2008) Log Message: ----------- trying git pull --rebase instead; still running into issues Modified Paths: -------------- sandbox/trunk/src/git/gitsvn.bash Modified: sandbox/trunk/src/git/gitsvn.bash =================================================================== --- sandbox/trunk/src/git/gitsvn.bash 2008-11-06 09:20:08 UTC (rev 1063) +++ sandbox/trunk/src/git/gitsvn.bash 2008-11-06 19:56:45 UTC (rev 1064) @@ -5,6 +5,12 @@ set -o errexit -o nounset +fail=false +if $fail +then rebase= +else rebase=--rebase +fi + # this is where the experiment will take place basedir=$1 mkdir -p $basedir @@ -15,141 +21,171 @@ svnadmin create svnrepo # add something to the repo -svn co file://$basedir/svnrepo svn -echo -e 'line1\nline2\nline3' > svn/myfile -svn add svn/myfile -svn ci -m 'added myfile' svn/ +svn co -q file://$basedir/svnrepo svn +echo -e 'line1\nline2\nline3\nline4' > svn/myfile +svn add -q svn/myfile +svn ci -q -m 'added myfile' svn/ # git clone it -git svn clone file://$basedir/svnrepo gitsvn +# s +git svn -q clone file://$basedir/svnrepo gitsvn # make some more changes to svn and mirror those to gitsvn -echo -e 'line4\nline5\nline6' >> svn/myfile -svn ci -m 'added more lines' svn/ -(cd gitsvn; git svn rebase) +# s--s +echo -e 'line5\nline6\nline7\nline8' >> svn/myfile +svn ci -q -m 'added more lines' svn/ +(cd gitsvn; git svn -q rebase) # make concurrent changes to both svn and git +# s--s--s +# `-g +# ==> +# s--s--s +# `-g sed -i s/line1/Line1/ svn/myfile -sed -i s/line4/Line4/ gitsvn/myfile -svn ci -m 'munge line1' svn/ -(cd gitsvn; git commit -a -m 'munge line4'; git svn rebase) +sed -i s/line5/Line5/ gitsvn/myfile +svn ci -q -m 'munge line1' svn/ +(cd gitsvn; git commit -a -m 'munge line5'; git svn -q rebase) # clone the git repo elsewhere and commit something there -git clone file://$basedir/gitsvn gitsvn2 -sed -i s/line6/Line6/ gitsvn2/myfile -(cd gitsvn2; git commit -a -m 'munge line6') +# s--s--s +# `-g +# `-G +git clone -q file://$basedir/gitsvn gitsvn2 +sed -i s/line8/Line8/ gitsvn2/myfile +(cd gitsvn2; git commit -q -a -m 'munge line8') # make concurrent change to svn, and original git repo +# s--s--s--s +# `-g--g +# `-G +# ==> +# s--s--s--s +# `-g--g +# `-g +# `-G sed -i s/line2/Line2/ svn/myfile -svn ci -m 'munge line2' svn/ -(cd gitsvn; git svn rebase) +svn ci -q -m 'munge line2' svn/ +(cd gitsvn; git svn -q rebase) -# make another concurrent change to svn, then pull gitsvn2 changes into the -# original git repo, then update gitsvn from svn +# make another concurrent change to svn, then pull (merge) gitsvn2 changes into +# the original git repo, then update gitsvn from svn +# s--s--s--s--s +# `-g--g +# `-g +# `-G +# ==> +# s--s--s--s--s +# `-g--g--g +# `-g +# `-G-------' +# ==> +# CONFLICT sed -i s/line3/Line3/ svn/myfile -svn ci -m 'munge line3' svn/ -(cd gitsvn; git pull file://$basedir/gitsvn2; git svn rebase) # XXX problem here! +svn ci -q -m 'munge line3' svn/ +# XXX problem here +( + cd gitsvn + git pull $rebase -q file://$basedir/gitsvn2 + git svn -q rebase || git diff +) +# Output: +# +# $ bash -x ./gitsvn.bash /tmp/t4 # + set -o errexit -o nounset -# + basedir=/tmp/test2 -# + mkdir -p /tmp/test2 -# + cd /tmp/test2 +# + fail=false +# + false +# + rebase=--rebase +# + basedir=/tmp/t4 +# + mkdir -p /tmp/t4 +# + cd /tmp/t4 # + mkdir svnrepo # + svnadmin create svnrepo -# + svn co file:///tmp/test2/svnrepo svn -# Checked out revision 0. -# + echo -e 'line1\nline2\nline3' -# + svn add svn/myfile -# A svn/myfile -# + svn ci -m 'added myfile' svn/ -# Adding svn/myfile -# Transmitting file data . -# Committed revision 1. -# + git svn clone file:///tmp/test2/svnrepo gitsvn +# + svn co -q file:///tmp/t4/svnrepo svn +# + echo -e 'line1\nline2\nline3\nline4' +# + svn add -q svn/myfile +# + svn ci -q -m 'added myfile' svn/ +# + git svn -q clone file:///tmp/t4/svnrepo gitsvn # Initialized empty Git repository in .git/ -# A myfile -# r1 = e03653693de0cfebfcfb1ed7d9d3db896421ee7a (git-svn) +# r1 = f39dddf518003f497e89b08c7d9ce03cb0834a5e (git-svn) # Checked out HEAD: -# file:///tmp/test2/svnrepo r1 -# + echo -e 'line4\nline5\nline6' -# + svn ci -m 'added more lines' svn/ -# Sending svn/myfile -# Transmitting file data . -# Committed revision 2. +# file:///tmp/t4/svnrepo r1 +# + echo -e 'line5\nline6\nline7\nline8' +# + svn ci -q -m 'added more lines' svn/ # + cd gitsvn -# + git svn rebase -# M myfile -# r2 = c8f7e4bc4a623abcabf27d34c6716c1f13c37da2 (git-svn) +# + git svn -q rebase +# r2 = 4eb6330c853563989930ebac27165fd613dca81b (git-svn) # First, rewinding head to replay your work on top of it... -# HEAD is now at c8f7e4b... added more lines +# HEAD is now at 4eb6330... added more lines # Fast-forwarded master to refs/remotes/git-svn. # + sed -i s/line1/Line1/ svn/myfile -# + sed -i s/line4/Line4/ gitsvn/myfile -# + svn ci -m 'munge line1' svn/ -# Sending svn/myfile -# Transmitting file data . -# Committed revision 3. +# + sed -i s/line5/Line5/ gitsvn/myfile +# + svn ci -q -m 'munge line1' svn/ # + cd gitsvn -# + git commit -a -m 'munge line4' -# Created commit 4efa529: munge line4 +# + git commit -a -m 'munge line5' +# Created commit 1da2513: munge line5 # 1 files changed, 1 insertions(+), 1 deletions(-) -# + git svn rebase -# M myfile -# r3 = 76ffe8259f02910393f7f03fdfd0c81b12cfbcee (git-svn) +# + git svn -q rebase +# r3 = 89c2629a7bc6e67e90e28e143b32ae0cf9c82d3a (git-svn) # First, rewinding head to replay your work on top of it... -# HEAD is now at 76ffe82... munge line1 -# Applying munge line4 -# error: patch failed: myfile:1 +# HEAD is now at 89c2629... munge line1 +# Applying munge line5 +# + git clone -q file:///tmp/t4/gitsvn gitsvn2 +# remote: Counting objects: 12, done. +# remote: Compressing objects: 100% (4/4), done. +# remote: Total 12 (delta 1), reused 0 (delta 0) +# + sed -i s/line8/Line8/ gitsvn2/myfile +# + cd gitsvn2 +# + git commit -q -a -m 'munge line8' +# + sed -i s/line2/Line2/ svn/myfile +# + svn ci -q -m 'munge line2' svn/ +# + cd gitsvn +# + git svn -q rebase +# r4 = 3073ef827c94d15a1f4b6c1187ba97cac5128241 (git-svn) +# First, rewinding head to replay your work on top of it... +# HEAD is now at 3073ef8... munge line2 +# Applying munge line5 +# error: patch failed: myfile:2 # error: myfile: patch does not apply # Using index info to reconstruct a base tree... # Falling back to patching base and 3-way merge... # Auto-merged myfile -# + git clone file:///tmp/test2/gitsvn gitsvn2 -# Initialized empty Git repository in /tmp/test2/gitsvn2/.git/ -# + sed -i s/line6/Line6/ gitsvn2/myfile -# + cd gitsvn2 -# + git commit -a -m 'munge line6' -# Created commit 33eebd0: munge line6 -# 1 files changed, 1 insertions(+), 1 deletions(-) -# + sed -i s/line2/Line2/ svn/myfile -# + svn ci -m 'munge line2' svn/ -# Sending svn/myfile -# Transmitting file data . -# Committed revision 4. +# + sed -i s/line3/Line3/ svn/myfile +# + svn ci -q -m 'munge line3' svn/ # + cd gitsvn -# + git svn rebase -# M myfile -# r4 = 3923d574137132addd9f32ca40170f62aae0c456 (git-svn) +# + git pull --rebase -q file:///tmp/t4/gitsvn2 +# remote: Counting objects: 8, done. +# remote: Compressing objects: 100% (2/2), done. +# remote: Total 6 (delta 0), reused 3 (delta 0) +# Unpacking objects: 100% (6/6), done. # First, rewinding head to replay your work on top of it... -# HEAD is now at 3923d57... munge line2 -# Applying munge line4 +# HEAD is now at 9cfe5a5... munge line8 +# Applying munge line2 # error: patch failed: myfile:1 # error: myfile: patch does not apply # Using index info to reconstruct a base tree... # Falling back to patching base and 3-way merge... # Auto-merged myfile -# + sed -i s/line3/Line3/ svn/myfile -# + svn ci -m 'munge line3' svn/ -# Sending svn/myfile -# Transmitting file data . -# Committed revision 5. -# + cd gitsvn -# + git pull file:///tmp/test2/gitsvn2 -# remote: Counting objects: 8, done.[K -# remote: Compressing objects: 50% (1/2) [K -remote: Compressing objects: 100% (2/2) [K -remote: Compressing objects: 100% (2/2[K)remote: , done.[K -# remote: Total 6 (delta 0), reused 3 (delta 0)[K +# Applying munge line5 +# error: patch failed: myfile:2 +# error: myfile: patch does not apply +# Using index info to reconstruct a base tree... +# Falling back to patching base and 3-way merge... # Auto-merged myfile -# Merge made by recursive. -# myfile | 2 +- -# 1 files changed, 1 insertions(+), 1 deletions(-) -# + git svn rebase -# M myfile -# r5 = c90dcc08fb3cc07f714662d6e1d1054ba1678b75 (git-svn) +# No changes -- Patch already applied. +# + git svn -q rebase +# r5 = aafbc408b0567d24e25eb96a940b69a5c20bd9cc (git-svn) # First, rewinding head to replay your work on top of it... -# HEAD is now at c90dcc0... munge line3 -# Applying munge line4 +# HEAD is now at aafbc40... munge line3 +# Applying munge line5 +# error: patch failed: myfile:2 +# error: myfile: patch does not apply +# Using index info to reconstruct a base tree... +# Falling back to patching base and 3-way merge... +# Auto-merged myfile +# Applying munge line8 +# Applying munge line2 # error: patch failed: myfile:1 # error: myfile: patch does not apply # Using index info to reconstruct a base tree... @@ -157,7 +193,7 @@ # Auto-merged myfile # CONFLICT (content): Merge conflict in myfile # Failed to merge in the changes. -# Patch failed at 0001. +# Patch failed at 0003. # # When you have resolved this problem run "git rebase --continue". # If you would prefer to skip this patch, instead run "git rebase --skip". @@ -165,3 +201,19 @@ # # rebase refs/remotes/git-svn: command returned error: 1 # +# + git diff +# diff --cc myfile +# index 2560a81,3813bf9..0000000 +# --- a/myfile +# +++ b/myfile +# @@@ -1,6 -1,6 +1,10 @@@ +# Line1 +# Line2 +# ++<<<<<<< HEAD:myfile +# +Line3 +# ++======= +# + line3 +# ++>>>>>>> munge line2:myfile +# line4 +# Line5 +# line6 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |