@matheusbsbs / matheus-bagliano / commits / 1d144aa25e
Fork 0

git-svn: expand the svn mergeinfo test suite, highlighting some failures

As shown, git-svn has some problems; not all svn merges are correctly detected, and cherry picks may incorrectly be detected as real merges. These test cases will be marked as _success once the relevant fixes are in. Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>

Sam Vilain committed Dec 20, 2009 at 05:20 UTC 1d144aa25edbb4dcda88abbaef8f336108b8d788
3 files changed +860 -172
t/t9151-svn-mergeinfo.sh
+21 -6
@@ -15,12 +15,27 @@ test_expect_success 'load svn dump' "
15 git svn fetch --all
16 "
17
18 -test_expect_success 'represent svn merges without intervening commits' "
19 - [ `git cat-file commit HEAD^1 | grep parent | wc -l` -eq 2 ]
20 - "
18 +test_expect_failure 'all svn merges became git merge commits' '
19 + unmarked=$(git rev-list --parents --all --grep=Merge |
20 + grep -v " .* " | cut -f1 -d" ")
21 + [ -z "$unmarked" ]
22 + '
23
22 -test_expect_success 'represent svn merges with intervening commits' "
23 - [ `git cat-file commit HEAD | grep parent | wc -l` -eq 2 ]
24 - "
24 +test_expect_failure 'cherry picks did not become git merge commits' '
25 + bad_cherries=$(git rev-list --parents --all --grep=Cherry |
26 + grep " .* " | cut -f1 -d" ")
27 + [ -z "$bad_cherries" ]
28 + '
29 +
30 +test_expect_success 'svn non-merge merge commits did not become git merge commits' '
31 + bad_non_merges=$(git rev-list --parents --all --grep=non-merge |
32 + grep " .* " | cut -f1 -d" ")
33 + [ -z "$bad_non_merges" ]
34 + '
35 +
36 +test_expect_failure 'everything got merged in the end' '
37 + unmerged=$(git rev-list --all --not master)
38 + [ -z "$unmerged" ]
39 + '
40
41 test_done
t/t9151/make-svnmerge-dump
+112 -54
@@ -11,93 +11,151 @@ mkdir foo.svn
11 svnadmin create foo.svn
12 svn co file://`pwd`/foo.svn foo
13
14 +commit() {
15 + i=$(( $1 + 1 ))
16 + shift;
17 + svn commit -m "(r$i) $*" >/dev/null || exit 1
18 + echo $i
19 +}
20 +
21 +say() {
22 + echo " * $*"
23 +}
24 +
25 +i=0
26 cd foo
27 mkdir trunk
28 mkdir branches
29 svn add trunk branches
18 -svn commit -m "Setup trunk and branches"
19 -cd trunk
30 +i=$(commit $i "Setup trunk and branches")
31
21 -git cat-file blob 6683463e:Makefile > Makefile
22 -svn add Makefile
32 +git cat-file blob 6683463e:Makefile > trunk/Makefile
33 +svn add trunk/Makefile
34
24 -echo "Committing ANCESTOR"
25 -svn commit -m "ancestor"
26 -cd ..
35 +say "Committing ANCESTOR"
36 +i=$(commit $i "ancestor")
37 svn cp trunk branches/left
38
29 -echo "Committing BRANCH POINT"
30 -svn commit -m "make left branch"
39 +say "Committing BRANCH POINT"
40 +i=$(commit $i "make left branch")
41 svn cp trunk branches/right
42
33 -echo "Committing other BRANCH POINT"
34 -svn commit -m "make right branch"
35 -cd branches/left/
43 +say "Committing other BRANCH POINT"
44 +i=$(commit $i "make right branch")
45
37 -#$sm init
38 -#svn commit -m "init svnmerge"
46 +say "Committing LEFT UPDATE"
47 +git cat-file blob 5873b67e:Makefile > branches/left/Makefile
48 +i=$(commit $i "left update 1")
49
40 -git cat-file blob 5873b67e:Makefile > Makefile
41 -echo "Committing BRANCH UPDATE 1"
42 -svn commit -m "left update 1"
43 -cd ../..
44 -
45 -cd trunk
46 -git cat-file blob 75118b13:Makefile > Makefile
47 -echo "Committing TRUNK UPDATE"
48 -svn commit -m "trunk update"
50 +git cat-file blob 75118b13:Makefile > branches/right/Makefile
51 +say "Committing RIGHT UPDATE"
52 +pre_right_update_1=$i
53 +i=$(commit $i "right update 1")
54
50 -cd ../branches/left
51 -git cat-file blob ff5ebe39:Makefile > Makefile
52 -echo "Committing BRANCH UPDATE 2"
53 -svn commit -m "left update 2"
55 +say "Making more commits on LEFT"
56 +git cat-file blob ff5ebe39:Makefile > branches/left/Makefile
57 +i=$(commit $i "left update 2")
58 +git cat-file blob b5039db6:Makefile > branches/left/Makefile
59 +i=$(commit $i "left update 3")
60
55 -git cat-file blob b5039db6:Makefile > Makefile
56 -echo "Committing BRANCH UPDATE 3"
57 -svn commit -m "left update 3"
61 +say "Making a LEFT SUB-BRANCH"
62 +svn cp branches/left branches/left-sub
63 +sub_left_make=$i
64 +i=$(commit $i "make left sub-branch")
65
59 -# merge to trunk
66 +say "Making a commit on LEFT SUB-BRANCH"
67 +echo "crunch" > branches/left-sub/README
68 +svn add branches/left-sub/README
69 +i=$(commit $i "left sub-branch update 1")
70
61 -cd ../..
71 +say "Merging LEFT to TRUNK"
72 svn update
73 cd trunk
64 -
74 svn merge ../branches/left --accept postpone
66 -
67 -git cat-file blob b51ad431:Makefile > Makefile
68 -
75 +git cat-file blob b5039db6:Makefile > Makefile
76 svn resolved Makefile
77 +i=$(commit $i "Merge left to trunk 1")
78 +cd ..
79
71 -svn commit -m "Merge trunk 1"
72 -
73 -# create commits on both branches
74 -
75 -cd ../branches/left
76 -git cat-file blob ff5ebe39:Makefile > Makefile
77 -echo "Committing BRANCH UPDATE 4"
78 -svn commit -m "left update 4"
79 -
80 -cd ../right
81 -git cat-file blob b5039db6:Makefile > Makefile
82 -echo "Committing other BRANCH UPDATE 1"
83 -svn commit -m "right update 1"
80 +say "Making more commits on LEFT and RIGHT"
81 +echo "touche" > branches/left/zlonk
82 +svn add branches/left/zlonk
83 +i=$(commit $i "left update 4")
84 +echo "thwacke" > branches/right/bang
85 +svn add branches/right/bang
86 +i=$(commit $i "right update 2")
87
85 -# merge to trun again
88 +say "Squash merge of RIGHT tip 2 commits onto TRUNK"
89 +svn update
90 +cd trunk
91 +svn merge -r$pre_right_update_1:$i ../branches/right
92 +i=$(commit $i "Cherry-pick right 2 commits to trunk")
93 +cd ..
94
87 -cd ../..
95 +say "Merging RIGHT to TRUNK"
96 svn update
97 cd trunk
98 +svn merge ../branches/right --accept postpone
99 +git cat-file blob b51ad431:Makefile > Makefile
100 +svn resolved Makefile
101 +i=$(commit $i "Merge right to trunk 1")
102 +cd ..
103
91 -svn merge ../branches/left --accept postpone
104 +say "Making more commits on RIGHT and TRUNK"
105 +echo "whamm" > branches/right/urkkk
106 +svn add branches/right/urkkk
107 +i=$(commit $i "right update 3")
108 +echo "pow" > trunk/vronk
109 +svn add trunk/vronk
110 +i=$(commit $i "trunk update 1")
111
112 +say "Merging RIGHT to LEFT SUB-BRANCH"
113 +svn update
114 +cd branches/left-sub
115 +svn merge ../right --accept postpone
116 git cat-file blob b51ad431:Makefile > Makefile
94 -
117 svn resolved Makefile
118 +i=$(commit $i "Merge right to left sub-branch")
119 +cd ../..
120
97 -svn commit -m "Merge trunk 2"
121 +say "Making more commits on LEFT SUB-BRANCH and LEFT"
122 +echo "zowie" > branches/left-sub/wham_eth
123 +svn add branches/left-sub/wham_eth
124 +pre_sub_left_update_2=$i
125 +i=$(commit $i "left sub-branch update 2")
126 +sub_left_update_2=$i
127 +echo "eee_yow" > branches/left/glurpp
128 +svn add branches/left/glurpp
129 +i=$(commit $i "left update 5")
130 +
131 +say "Cherry pick LEFT SUB-BRANCH commit to LEFT"
132 +svn update
133 +cd branches/left
134 +svn merge -r$pre_sub_left_update_2:$sub_left_update_2 ../left-sub
135 +i=$(commit $i "Cherry-pick left sub-branch commit to left")
136 +cd ../..
137
138 +say "Merging LEFT SUB-BRANCH back to LEFT"
139 +svn update
140 +cd branches/left
141 +# it's only a merge because the previous merge cherry-picked the top commit
142 +svn merge -r$sub_left_make:$sub_left_update_2 ../left-sub --accept postpone
143 +i=$(commit $i "Merge left sub-branch to left")
144 cd ../..
145
146 +say "Merging EVERYTHING to TRUNK"
147 +svn update
148 +cd trunk
149 +svn merge ../branches/left --accept postpone
150 +svn resolved bang
151 +i=$(commit $i "Merge left to trunk 2")
152 +# this merge, svn happily updates the mergeinfo, but there is actually
153 +# nothing to merge. git-svn will not make a meaningless merge commit.
154 +svn merge ../branches/right --accept postpone
155 +i=$(commit $i "non-merge right to trunk 2")
156 +cd ..
157 +
158 +cd ..
159 svnadmin dump foo.svn > svn-mergeinfo.dump
160
161 rm -rf foo foo.svn
t/t9151/svn-mergeinfo.dump
+727 -112
@@ -1,6 +1,6 @@
1 SVN-fs-dump-format-version: 2
2
3 -UUID: 1530d5a2-a1dc-4438-8ad5-d95e96db8945
3 +UUID: 64142547-0943-4db2-836a-d1e1eb2f9924
4
5 Revision-number: 0
6 Prop-content-length: 56
@@ -9,25 +9,25 @@ Content-length: 56
9 K 8
10 svn:date
11 V 27
12 -2009-11-12T20:29:38.812226Z
12 +2009-12-19T16:17:51.232640Z
13 PROPS-END
14
15 Revision-number: 1
16 -Prop-content-length: 127
17 -Content-length: 127
16 +Prop-content-length: 128
17 +Content-length: 128
18
19 K 7
20 svn:log
21 -V 24
22 -Setup trunk and branches
21 +V 29
22 +(r1) Setup trunk and branches
23 K 10
24 svn:author
25 -V 8
26 -tallsopp
25 +V 4
26 +samv
27 K 8
28 svn:date
29 V 27
30 -2009-11-12T20:29:39.045856Z
30 +2009-12-19T16:17:51.831965Z
31 PROPS-END
32
33 Node-path: branches
@@ -49,21 +49,21 @@ PROPS-END
49
50
51 Revision-number: 2
52 -Prop-content-length: 110
53 -Content-length: 110
52 +Prop-content-length: 112
53 +Content-length: 112
54
55 K 7
56 svn:log
57 -V 8
58 -ancestor
57 +V 13
58 +(r2) ancestor
59 K 10
60 svn:author
61 -V 8
62 -tallsopp
61 +V 4
62 +samv
63 K 8
64 svn:date
65 V 27
66 -2009-11-12T20:29:40.079587Z
66 +2009-12-19T16:17:52.300075Z
67 PROPS-END
68
69 Node-path: trunk/Makefile
@@ -156,21 +156,21 @@ backup: clean
156
157
158 Revision-number: 3
159 -Prop-content-length: 119
160 -Content-length: 119
159 +Prop-content-length: 120
160 +Content-length: 120
161
162 K 7
163 svn:log
164 -V 16
165 -make left branch
164 +V 21
165 +(r3) make left branch
166 K 10
167 svn:author
168 -V 8
169 -tallsopp
168 +V 4
169 +samv
170 K 8
171 svn:date
172 V 27
173 -2009-11-12T20:29:42.084439Z
173 +2009-12-19T16:17:52.768800Z
174 PROPS-END
175
176 Node-path: branches/left
@@ -190,21 +190,21 @@ Text-copy-source-sha1: 103205ce331f7d64086dba497574734f78439590
190
191
192 Revision-number: 4
193 -Prop-content-length: 120
194 -Content-length: 120
193 +Prop-content-length: 121
194 +Content-length: 121
195
196 K 7
197 svn:log
198 -V 17
199 -make right branch
198 +V 22
199 +(r4) make right branch
200 K 10
201 svn:author
202 -V 8
203 -tallsopp
202 +V 4
203 +samv
204 K 8
205 svn:date
206 V 27
207 -2009-11-12T20:29:44.065452Z
207 +2009-12-19T16:17:53.177879Z
208 PROPS-END
209
210 Node-path: branches/right
@@ -224,21 +224,21 @@ Text-copy-source-sha1: 103205ce331f7d64086dba497574734f78439590
224
225
226 Revision-number: 5
227 -Prop-content-length: 116
228 -Content-length: 116
227 +Prop-content-length: 117
228 +Content-length: 117
229
230 K 7
231 svn:log
232 -V 13
233 -left update 1
232 +V 18
233 +(r5) left update 1
234 K 10
235 svn:author
236 -V 8
237 -tallsopp
236 +V 4
237 +samv
238 K 8
239 svn:date
240 V 27
241 -2009-11-12T20:29:45.066262Z
241 +2009-12-19T16:17:53.604691Z
242 PROPS-END
243
244 Node-path: branches/left/Makefile
@@ -329,24 +329,24 @@ backup: clean
329
330
331 Revision-number: 6
332 -Prop-content-length: 115
333 -Content-length: 115
332 +Prop-content-length: 118
333 +Content-length: 118
334
335 K 7
336 svn:log
337 -V 12
338 -trunk update
337 +V 19
338 +(r6) right update 1
339 K 10
340 svn:author
341 -V 8
342 -tallsopp
341 +V 4
342 +samv
343 K 8
344 svn:date
345 V 27
346 -2009-11-12T20:29:46.278498Z
346 +2009-12-19T16:17:54.063555Z
347 PROPS-END
348
349 -Node-path: trunk/Makefile
349 +Node-path: branches/right/Makefile
350 Node-kind: file
351 Node-action: change
352 Text-content-length: 2521
@@ -437,21 +437,21 @@ backup: clean
437
438
439 Revision-number: 7
440 -Prop-content-length: 116
441 -Content-length: 116
440 +Prop-content-length: 117
441 +Content-length: 117
442
443 K 7
444 svn:log
445 -V 13
446 -left update 2
445 +V 18
446 +(r7) left update 2
447 K 10
448 svn:author
449 -V 8
450 -tallsopp
449 +V 4
450 +samv
451 K 8
452 svn:date
453 V 27
454 -2009-11-12T20:29:47.069090Z
454 +2009-12-19T16:17:54.523904Z
455 PROPS-END
456
457 Node-path: branches/left/Makefile
@@ -542,21 +542,21 @@ backup: clean
542
543
544 Revision-number: 8
545 -Prop-content-length: 116
546 -Content-length: 116
545 +Prop-content-length: 117
546 +Content-length: 117
547
548 K 7
549 svn:log
550 -V 13
551 -left update 3
550 +V 18
551 +(r8) left update 3
552 K 10
553 svn:author
554 -V 8
555 -tallsopp
554 +V 4
555 +samv
556 K 8
557 svn:date
558 V 27
559 -2009-11-12T20:29:48.053835Z
559 +2009-12-19T16:17:54.975970Z
560 PROPS-END
561
562 Node-path: branches/left/Makefile
@@ -647,33 +647,285 @@ backup: clean
647
648
649 Revision-number: 9
650 -Prop-content-length: 116
651 -Content-length: 116
650 +Prop-content-length: 124
651 +Content-length: 124
652
653 K 7
654 svn:log
655 -V 13
656 -Merge trunk 1
655 +V 25
656 +(r9) make left sub-branch
657 +K 10
658 +svn:author
659 +V 4
660 +samv
661 +K 8
662 +svn:date
663 +V 27
664 +2009-12-19T16:17:55.459904Z
665 +PROPS-END
666 +
667 +Node-path: branches/left-sub
668 +Node-kind: dir
669 +Node-action: add
670 +Node-copyfrom-rev: 3
671 +Node-copyfrom-path: branches/left
672 +
673 +
674 +Node-path: branches/left-sub/Makefile
675 +Node-kind: file
676 +Node-action: delete
677 +
678 +Node-path: branches/left-sub/Makefile
679 +Node-kind: file
680 +Node-action: add
681 +Node-copyfrom-rev: 8
682 +Node-copyfrom-path: branches/left/Makefile
683 +Text-copy-source-md5: 5ccff689fb290e00b85fe18ee50c54ba
684 +Text-copy-source-sha1: a13de8e23f1483efca3e57b2b64b0ae6f740ce10
685 +
686 +
687 +
688 +
689 +Revision-number: 10
690 +Prop-content-length: 129
691 +Content-length: 129
692 +
693 +K 7
694 +svn:log
695 +V 30
696 +(r10) left sub-branch update 1
697 K 10
698 svn:author
659 -V 8
660 -tallsopp
699 +V 4
700 +samv
701 K 8
702 svn:date
703 V 27
664 -2009-11-12T20:29:51.098306Z
704 +2009-12-19T16:17:55.862113Z
705 +PROPS-END
706 +
707 +Node-path: branches/left-sub/README
708 +Node-kind: file
709 +Node-action: add
710 +Prop-content-length: 10
711 +Text-content-length: 7
712 +Text-content-md5: fdbcfb6be9afe1121862143f226b51cf
713 +Text-content-sha1: 1d1f5ea4ceb584337ffe59b8980d92e3b78dfef4
714 +Content-length: 17
715 +
716 +PROPS-END
717 +crunch
718 +
719 +
720 +Revision-number: 11
721 +Prop-content-length: 126
722 +Content-length: 126
723 +
724 +K 7
725 +svn:log
726 +V 27
727 +(r11) Merge left to trunk 1
728 +K 10
729 +svn:author
730 +V 4
731 +samv
732 +K 8
733 +svn:date
734 +V 27
735 +2009-12-19T16:17:56.413416Z
736 PROPS-END
737
738 Node-path: trunk
739 Node-kind: dir
740 Node-action: change
670 -Prop-content-length: 53
671 -Content-length: 53
741 +Prop-content-length: 54
742 +Content-length: 54
743
744 K 13
745 svn:mergeinfo
675 -V 18
676 -/branches/left:2-8
746 +V 19
747 +/branches/left:2-10
748 +PROPS-END
749 +
750 +
751 +Node-path: trunk/Makefile
752 +Node-kind: file
753 +Node-action: change
754 +Text-content-length: 2593
755 +Text-content-md5: 5ccff689fb290e00b85fe18ee50c54ba
756 +Text-content-sha1: a13de8e23f1483efca3e57b2b64b0ae6f740ce10
757 +Content-length: 2593
758 +
759 +# -DCOLLISION_CHECK if you believe that SHA1's
760 +# 1461501637330902918203684832716283019655932542976 hashes do not give you
761 +# enough guarantees about no collisions between objects ever hapenning.
762 +#
763 +# -DNSEC if you want git to care about sub-second file mtimes and ctimes.
764 +# Note that you need some new glibc (at least >2.2.4) for this, and it will
765 +# BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely randomly
766 +# break unless your underlying filesystem supports those sub-second times
767 +# (my ext3 doesn't).
768 +CFLAGS=-g -O3 -Wall
769 +
770 +CC=gcc
771 +
772 +
773 +PROG= update-cache show-diff init-db write-tree read-tree commit-tree \
774 + cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
775 + check-files ls-tree merge-base
776 +
777 +all: $(PROG)
778 +
779 +install: $(PROG)
780 + install $(PROG) $(HOME)/bin/
781 +
782 +LIBS= -lssl -lz
783 +
784 +init-db: init-db.o
785 +
786 +update-cache: update-cache.o read-cache.o
787 + $(CC) $(CFLAGS) -o update-cache update-cache.o read-cache.o $(LIBS)
788 +
789 +show-diff: show-diff.o read-cache.o
790 + $(CC) $(CFLAGS) -o show-diff show-diff.o read-cache.o $(LIBS)
791 +
792 +write-tree: write-tree.o read-cache.o
793 + $(CC) $(CFLAGS) -o write-tree write-tree.o read-cache.o $(LIBS)
794 +
795 +read-tree: read-tree.o read-cache.o
796 + $(CC) $(CFLAGS) -o read-tree read-tree.o read-cache.o $(LIBS)
797 +
798 +commit-tree: commit-tree.o read-cache.o
799 + $(CC) $(CFLAGS) -o commit-tree commit-tree.o read-cache.o $(LIBS)
800 +
801 +cat-file: cat-file.o read-cache.o
802 + $(CC) $(CFLAGS) -o cat-file cat-file.o read-cache.o $(LIBS)
803 +
804 +fsck-cache: fsck-cache.o read-cache.o object.o commit.o tree.o blob.o
805 + $(CC) $(CFLAGS) -o fsck-cache fsck-cache.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
806 +
807 +checkout-cache: checkout-cache.o read-cache.o
808 + $(CC) $(CFLAGS) -o checkout-cache checkout-cache.o read-cache.o $(LIBS)
809 +
810 +diff-tree: diff-tree.o read-cache.o
811 + $(CC) $(CFLAGS) -o diff-tree diff-tree.o read-cache.o $(LIBS)
812 +
813 +rev-tree: rev-tree.o read-cache.o object.o commit.o tree.o blob.o
814 + $(CC) $(CFLAGS) -o rev-tree rev-tree.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
815 +
816 +show-files: show-files.o read-cache.o
817 + $(CC) $(CFLAGS) -o show-files show-files.o read-cache.o $(LIBS)
818 +
819 +check-files: check-files.o read-cache.o
820 + $(CC) $(CFLAGS) -o check-files check-files.o read-cache.o $(LIBS)
821 +
822 +ls-tree: ls-tree.o read-cache.o
823 + $(CC) $(CFLAGS) -o ls-tree ls-tree.o read-cache.o $(LIBS)
824 +
825 +merge-base: merge-base.o read-cache.o object.o commit.o tree.o blob.o
826 + $(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
827 +
828 +read-cache.o: cache.h
829 +show-diff.o: cache.h
830 +
831 +clean:
832 + rm -f *.o $(PROG)
833 +
834 +backup: clean
835 + cd .. ; tar czvf dircache.tar.gz dir-cache
836 +
837 +
838 +Revision-number: 12
839 +Prop-content-length: 118
840 +Content-length: 118
841 +
842 +K 7
843 +svn:log
844 +V 19
845 +(r12) left update 4
846 +K 10
847 +svn:author
848 +V 4
849 +samv
850 +K 8
851 +svn:date
852 +V 27
853 +2009-12-19T16:17:56.831014Z
854 +PROPS-END
855 +
856 +Node-path: branches/left/zlonk
857 +Node-kind: file
858 +Node-action: add
859 +Prop-content-length: 10
860 +Text-content-length: 7
861 +Text-content-md5: 8b9d8c7c2aaa6167e7d3407a773bbbba
862 +Text-content-sha1: 9716527ebd70a75c27625cacbeb2d897c6e86178
863 +Content-length: 17
864 +
865 +PROPS-END
866 +touche
867 +
868 +
869 +Revision-number: 13
870 +Prop-content-length: 119
871 +Content-length: 119
872 +
873 +K 7
874 +svn:log
875 +V 20
876 +(r13) right update 2
877 +K 10
878 +svn:author
879 +V 4
880 +samv
881 +K 8
882 +svn:date
883 +V 27
884 +2009-12-19T16:17:57.341143Z
885 +PROPS-END
886 +
887 +Node-path: branches/right/bang
888 +Node-kind: file
889 +Node-action: add
890 +Prop-content-length: 10
891 +Text-content-length: 8
892 +Text-content-md5: 34c28f1d2dc6a9adeccc4265bf7516cb
893 +Text-content-sha1: 0bc5bb345c0e71d28f784f12e0bd2d384c283062
894 +Content-length: 18
895 +
896 +PROPS-END
897 +thwacke
898 +
899 +
900 +Revision-number: 14
901 +Prop-content-length: 141
902 +Content-length: 141
903 +
904 +K 7
905 +svn:log
906 +V 42
907 +(r14) Cherry-pick right 2 commits to trunk
908 +K 10
909 +svn:author
910 +V 4
911 +samv
912 +K 8
913 +svn:date
914 +V 27
915 +2009-12-19T16:17:57.841851Z
916 +PROPS-END
917 +
918 +Node-path: trunk
919 +Node-kind: dir
920 +Node-action: change
921 +Prop-content-length: 75
922 +Content-length: 75
923 +
924 +K 13
925 +svn:mergeinfo
926 +V 40
927 +/branches/left:2-10
928 +/branches/right:6-13
929 PROPS-END
930
931
@@ -767,31 +1019,147 @@ backup: clean
1019 cd .. ; tar czvf dircache.tar.gz dir-cache
1020
1021
770 -Revision-number: 10
771 -Prop-content-length: 116
772 -Content-length: 116
1022 +Node-path: trunk/bang
1023 +Node-kind: file
1024 +Node-action: add
1025 +Node-copyfrom-rev: 13
1026 +Node-copyfrom-path: branches/right/bang
1027 +Text-copy-source-md5: 34c28f1d2dc6a9adeccc4265bf7516cb
1028 +Text-copy-source-sha1: 0bc5bb345c0e71d28f784f12e0bd2d384c283062
1029 +
1030 +
1031 +Revision-number: 15
1032 +Prop-content-length: 127
1033 +Content-length: 127
1034
1035 K 7
1036 svn:log
776 -V 13
777 -left update 4
1037 +V 28
1038 +(r15) Merge right to trunk 1
1039 K 10
1040 svn:author
780 -V 8
781 -tallsopp
1041 +V 4
1042 +samv
1043 K 8
1044 svn:date
1045 V 27
785 -2009-11-12T20:29:52.081644Z
1046 +2009-12-19T16:17:58.368520Z
1047 PROPS-END
1048
788 -Node-path: branches/left/Makefile
1049 +Node-path: trunk
1050 +Node-kind: dir
1051 +Node-action: change
1052 +Prop-content-length: 75
1053 +Content-length: 75
1054 +
1055 +K 13
1056 +svn:mergeinfo
1057 +V 40
1058 +/branches/left:2-10
1059 +/branches/right:2-14
1060 +PROPS-END
1061 +
1062 +
1063 +Revision-number: 16
1064 +Prop-content-length: 119
1065 +Content-length: 119
1066 +
1067 +K 7
1068 +svn:log
1069 +V 20
1070 +(r16) right update 3
1071 +K 10
1072 +svn:author
1073 +V 4
1074 +samv
1075 +K 8
1076 +svn:date
1077 +V 27
1078 +2009-12-19T16:17:58.779056Z
1079 +PROPS-END
1080 +
1081 +Node-path: branches/right/urkkk
1082 +Node-kind: file
1083 +Node-action: add
1084 +Prop-content-length: 10
1085 +Text-content-length: 6
1086 +Text-content-md5: 5889c8392e16251b0c80927607a03036
1087 +Text-content-sha1: 3934264d277a0cf886b6b1c7f2b9e56da2525302
1088 +Content-length: 16
1089 +
1090 +PROPS-END
1091 +whamm
1092 +
1093 +
1094 +Revision-number: 17
1095 +Prop-content-length: 119
1096 +Content-length: 119
1097 +
1098 +K 7
1099 +svn:log
1100 +V 20
1101 +(r17) trunk update 1
1102 +K 10
1103 +svn:author
1104 +V 4
1105 +samv
1106 +K 8
1107 +svn:date
1108 +V 27
1109 +2009-12-19T16:17:59.221851Z
1110 +PROPS-END
1111 +
1112 +Node-path: trunk/vronk
1113 Node-kind: file
1114 +Node-action: add
1115 +Prop-content-length: 10
1116 +Text-content-length: 4
1117 +Text-content-md5: b2f80fa02a7f1364b9c29d3da44bf9f9
1118 +Text-content-sha1: e994d980c0f2d7a3f76138bf96d57f36f9633828
1119 +Content-length: 14
1120 +
1121 +PROPS-END
1122 +pow
1123 +
1124 +
1125 +Revision-number: 18
1126 +Prop-content-length: 135
1127 +Content-length: 135
1128 +
1129 +K 7
1130 +svn:log
1131 +V 36
1132 +(r18) Merge right to left sub-branch
1133 +K 10
1134 +svn:author
1135 +V 4
1136 +samv
1137 +K 8
1138 +svn:date
1139 +V 27
1140 +2009-12-19T16:17:59.781666Z
1141 +PROPS-END
1142 +
1143 +Node-path: branches/left-sub
1144 +Node-kind: dir
1145 Node-action: change
791 -Text-content-length: 2529
792 -Text-content-md5: f6b197cc3f2e89a83e545d4bb003de73
793 -Text-content-sha1: 2f656677cfec0bceec85e53036ffb63e25126f8e
794 -Content-length: 2529
1146 +Prop-content-length: 55
1147 +Content-length: 55
1148 +
1149 +K 13
1150 +svn:mergeinfo
1151 +V 20
1152 +/branches/right:2-17
1153 +PROPS-END
1154 +
1155 +
1156 +Node-path: branches/left-sub/Makefile
1157 +Node-kind: file
1158 +Node-action: change
1159 +Text-content-length: 2713
1160 +Text-content-md5: 0afbe34f244cd662b1f97d708c687f90
1161 +Text-content-sha1: 46d9377d783e67a9b581da110352e799517c8a14
1162 +Content-length: 2713
1163
1164 # -DCOLLISION_CHECK if you believe that SHA1's
1165 # 1461501637330902918203684832716283019655932542976 hashes do not give you
@@ -809,7 +1177,7 @@ CC=gcc
1177
1178 PROG= update-cache show-diff init-db write-tree read-tree commit-tree \
1179 cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
812 - check-files ls-tree merge-base
1180 + check-files ls-tree merge-base merge-cache
1181
1182 all: $(PROG)
1183
@@ -859,8 +1227,11 @@ check-files: check-files.o read-cache.o
1227 ls-tree: ls-tree.o read-cache.o
1228 $(CC) $(CFLAGS) -o ls-tree ls-tree.o read-cache.o $(LIBS)
1229
862 -merge-base: merge-base.o read-cache.o
863 - $(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o $(LIBS)
1230 +merge-base: merge-base.o read-cache.o object.o commit.o tree.o blob.o
1231 + $(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
1232 +
1233 +merge-cache: merge-cache.o read-cache.o
1234 + $(CC) $(CFLAGS) -o merge-cache merge-cache.o read-cache.o $(LIBS)
1235
1236 read-cache.o: cache.h
1237 show-diff.o: cache.h
@@ -872,31 +1243,165 @@ backup: clean
1243 cd .. ; tar czvf dircache.tar.gz dir-cache
1244
1245
875 -Revision-number: 11
876 -Prop-content-length: 117
877 -Content-length: 117
1246 +Node-path: branches/left-sub/bang
1247 +Node-kind: file
1248 +Node-action: add
1249 +Node-copyfrom-rev: 17
1250 +Node-copyfrom-path: branches/right/bang
1251 +Text-copy-source-md5: 34c28f1d2dc6a9adeccc4265bf7516cb
1252 +Text-copy-source-sha1: 0bc5bb345c0e71d28f784f12e0bd2d384c283062
1253 +
1254 +
1255 +Node-path: branches/left-sub/urkkk
1256 +Node-kind: file
1257 +Node-action: add
1258 +Node-copyfrom-rev: 17
1259 +Node-copyfrom-path: branches/right/urkkk
1260 +Text-copy-source-md5: 5889c8392e16251b0c80927607a03036
1261 +Text-copy-source-sha1: 3934264d277a0cf886b6b1c7f2b9e56da2525302
1262 +
1263 +
1264 +Revision-number: 19
1265 +Prop-content-length: 129
1266 +Content-length: 129
1267
1268 K 7
1269 svn:log
881 -V 14
882 -right update 1
1270 +V 30
1271 +(r19) left sub-branch update 2
1272 K 10
1273 svn:author
885 -V 8
886 -tallsopp
1274 +V 4
1275 +samv
1276 K 8
1277 svn:date
1278 V 27
890 -2009-11-12T20:29:53.059636Z
1279 +2009-12-19T16:18:00.200531Z
1280 PROPS-END
1281
893 -Node-path: branches/right/Makefile
1282 +Node-path: branches/left-sub/wham_eth
1283 +Node-kind: file
1284 +Node-action: add
1285 +Prop-content-length: 10
1286 +Text-content-length: 6
1287 +Text-content-md5: 757bcd5818572ef3f9580052617c1c8b
1288 +Text-content-sha1: b165019b005c199237ba822c4404e771e93b654a
1289 +Content-length: 16
1290 +
1291 +PROPS-END
1292 +zowie
1293 +
1294 +
1295 +Revision-number: 20
1296 +Prop-content-length: 118
1297 +Content-length: 118
1298 +
1299 +K 7
1300 +svn:log
1301 +V 19
1302 +(r20) left update 5
1303 +K 10
1304 +svn:author
1305 +V 4
1306 +samv
1307 +K 8
1308 +svn:date
1309 +V 27
1310 +2009-12-19T16:18:00.659636Z
1311 +PROPS-END
1312 +
1313 +Node-path: branches/left/glurpp
1314 Node-kind: file
1315 +Node-action: add
1316 +Prop-content-length: 10
1317 +Text-content-length: 8
1318 +Text-content-md5: 14a169f628e0bb59df9c2160649d0a30
1319 +Text-content-sha1: ef7d929e52177767ecfcd28941f6b7f04b4131e3
1320 +Content-length: 18
1321 +
1322 +PROPS-END
1323 +eee_yow
1324 +
1325 +
1326 +Revision-number: 21
1327 +Prop-content-length: 147
1328 +Content-length: 147
1329 +
1330 +K 7
1331 +svn:log
1332 +V 48
1333 +(r21) Cherry-pick left sub-branch commit to left
1334 +K 10
1335 +svn:author
1336 +V 4
1337 +samv
1338 +K 8
1339 +svn:date
1340 +V 27
1341 +2009-12-19T16:18:01.194402Z
1342 +PROPS-END
1343 +
1344 +Node-path: branches/left
1345 +Node-kind: dir
1346 Node-action: change
896 -Text-content-length: 2593
897 -Text-content-md5: 5ccff689fb290e00b85fe18ee50c54ba
898 -Text-content-sha1: a13de8e23f1483efca3e57b2b64b0ae6f740ce10
899 -Content-length: 2593
1347 +Prop-content-length: 56
1348 +Content-length: 56
1349 +
1350 +K 13
1351 +svn:mergeinfo
1352 +V 21
1353 +/branches/left-sub:19
1354 +PROPS-END
1355 +
1356 +
1357 +Node-path: branches/left/wham_eth
1358 +Node-kind: file
1359 +Node-action: add
1360 +Node-copyfrom-rev: 19
1361 +Node-copyfrom-path: branches/left-sub/wham_eth
1362 +Text-copy-source-md5: 757bcd5818572ef3f9580052617c1c8b
1363 +Text-copy-source-sha1: b165019b005c199237ba822c4404e771e93b654a
1364 +
1365 +
1366 +Revision-number: 22
1367 +Prop-content-length: 134
1368 +Content-length: 134
1369 +
1370 +K 7
1371 +svn:log
1372 +V 35
1373 +(r22) Merge left sub-branch to left
1374 +K 10
1375 +svn:author
1376 +V 4
1377 +samv
1378 +K 8
1379 +svn:date
1380 +V 27
1381 +2009-12-19T16:18:01.679218Z
1382 +PROPS-END
1383 +
1384 +Node-path: branches/left
1385 +Node-kind: dir
1386 +Node-action: change
1387 +Prop-content-length: 79
1388 +Content-length: 79
1389 +
1390 +K 13
1391 +svn:mergeinfo
1392 +V 44
1393 +/branches/left-sub:4-19
1394 +/branches/right:2-17
1395 +PROPS-END
1396 +
1397 +
1398 +Node-path: branches/left/Makefile
1399 +Node-kind: file
1400 +Node-action: change
1401 +Text-content-length: 2713
1402 +Text-content-md5: 0afbe34f244cd662b1f97d708c687f90
1403 +Text-content-sha1: 46d9377d783e67a9b581da110352e799517c8a14
1404 +Content-length: 2713
1405
1406 # -DCOLLISION_CHECK if you believe that SHA1's
1407 # 1461501637330902918203684832716283019655932542976 hashes do not give you
@@ -914,7 +1419,7 @@ CC=gcc
1419
1420 PROG= update-cache show-diff init-db write-tree read-tree commit-tree \
1421 cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
917 - check-files ls-tree merge-base
1422 + check-files ls-tree merge-base merge-cache
1423
1424 all: $(PROG)
1425
@@ -967,6 +1472,9 @@ ls-tree: ls-tree.o read-cache.o
1472 merge-base: merge-base.o read-cache.o object.o commit.o tree.o blob.o
1473 $(CC) $(CFLAGS) -o merge-base merge-base.o read-cache.o object.o commit.o tree.o blob.o $(LIBS)
1474
1475 +merge-cache: merge-cache.o read-cache.o
1476 + $(CC) $(CFLAGS) -o merge-cache merge-cache.o read-cache.o $(LIBS)
1477 +
1478 read-cache.o: cache.h
1479 show-diff.o: cache.h
1480
@@ -977,34 +1485,141 @@ backup: clean
1485 cd .. ; tar czvf dircache.tar.gz dir-cache
1486
1487
980 -Revision-number: 12
981 -Prop-content-length: 116
982 -Content-length: 116
1488 +Node-path: branches/left/README
1489 +Node-kind: file
1490 +Node-action: add
1491 +Node-copyfrom-rev: 18
1492 +Node-copyfrom-path: branches/left-sub/README
1493 +Text-copy-source-md5: fdbcfb6be9afe1121862143f226b51cf
1494 +Text-copy-source-sha1: 1d1f5ea4ceb584337ffe59b8980d92e3b78dfef4
1495 +
1496 +
1497 +Node-path: branches/left/bang
1498 +Node-kind: file
1499 +Node-action: add
1500 +Node-copyfrom-rev: 18
1501 +Node-copyfrom-path: branches/left-sub/bang
1502 +Text-copy-source-md5: 34c28f1d2dc6a9adeccc4265bf7516cb
1503 +Text-copy-source-sha1: 0bc5bb345c0e71d28f784f12e0bd2d384c283062
1504 +
1505 +
1506 +Node-path: branches/left/urkkk
1507 +Node-kind: file
1508 +Node-action: add
1509 +Node-copyfrom-rev: 18
1510 +Node-copyfrom-path: branches/left-sub/urkkk
1511 +Text-copy-source-md5: 5889c8392e16251b0c80927607a03036
1512 +Text-copy-source-sha1: 3934264d277a0cf886b6b1c7f2b9e56da2525302
1513 +
1514 +
1515 +Revision-number: 23
1516 +Prop-content-length: 126
1517 +Content-length: 126
1518
1519 K 7
1520 svn:log
986 -V 13
987 -Merge trunk 2
1521 +V 27
1522 +(r23) Merge left to trunk 2
1523 K 10
1524 svn:author
990 -V 8
991 -tallsopp
1525 +V 4
1526 +samv
1527 K 8
1528 svn:date
1529 V 27
995 -2009-11-12T20:29:56.083003Z
1530 +2009-12-19T16:18:02.212349Z
1531 PROPS-END
1532
1533 Node-path: trunk
1534 Node-kind: dir
1535 Node-action: change
1001 -Prop-content-length: 54
1002 -Content-length: 54
1536 +Prop-content-length: 99
1537 +Content-length: 99
1538
1539 K 13
1540 svn:mergeinfo
1006 -V 19
1007 -/branches/left:2-11
1541 +V 64
1542 +/branches/left:2-22
1543 +/branches/left-sub:4-19
1544 +/branches/right:2-17
1545 +PROPS-END
1546 +
1547 +
1548 +Node-path: trunk/README
1549 +Node-kind: file
1550 +Node-action: add
1551 +Node-copyfrom-rev: 22
1552 +Node-copyfrom-path: branches/left/README
1553 +Text-copy-source-md5: fdbcfb6be9afe1121862143f226b51cf
1554 +Text-copy-source-sha1: 1d1f5ea4ceb584337ffe59b8980d92e3b78dfef4
1555 +
1556 +
1557 +Node-path: trunk/glurpp
1558 +Node-kind: file
1559 +Node-action: add
1560 +Node-copyfrom-rev: 22
1561 +Node-copyfrom-path: branches/left/glurpp
1562 +Text-copy-source-md5: 14a169f628e0bb59df9c2160649d0a30
1563 +Text-copy-source-sha1: ef7d929e52177767ecfcd28941f6b7f04b4131e3
1564 +
1565 +
1566 +Node-path: trunk/urkkk
1567 +Node-kind: file
1568 +Node-action: add
1569 +Node-copyfrom-rev: 22
1570 +Node-copyfrom-path: branches/left/urkkk
1571 +Text-copy-source-md5: 5889c8392e16251b0c80927607a03036
1572 +Text-copy-source-sha1: 3934264d277a0cf886b6b1c7f2b9e56da2525302
1573 +
1574 +
1575 +Node-path: trunk/wham_eth
1576 +Node-kind: file
1577 +Node-action: add
1578 +Node-copyfrom-rev: 22
1579 +Node-copyfrom-path: branches/left/wham_eth
1580 +Text-copy-source-md5: 757bcd5818572ef3f9580052617c1c8b
1581 +Text-copy-source-sha1: b165019b005c199237ba822c4404e771e93b654a
1582 +
1583 +
1584 +Node-path: trunk/zlonk
1585 +Node-kind: file
1586 +Node-action: add
1587 +Node-copyfrom-rev: 22
1588 +Node-copyfrom-path: branches/left/zlonk
1589 +Text-copy-source-md5: 8b9d8c7c2aaa6167e7d3407a773bbbba
1590 +Text-copy-source-sha1: 9716527ebd70a75c27625cacbeb2d897c6e86178
1591 +
1592 +
1593 +Revision-number: 24
1594 +Prop-content-length: 131
1595 +Content-length: 131
1596 +
1597 +K 7
1598 +svn:log
1599 +V 32
1600 +(r24) non-merge right to trunk 2
1601 +K 10
1602 +svn:author
1603 +V 4
1604 +samv
1605 +K 8
1606 +svn:date
1607 +V 27
1608 +2009-12-19T16:18:02.672148Z
1609 +PROPS-END
1610 +
1611 +Node-path: trunk
1612 +Node-kind: dir
1613 +Node-action: change
1614 +Prop-content-length: 99
1615 +Content-length: 99
1616 +
1617 +K 13
1618 +svn:mergeinfo
1619 +V 64
1620 +/branches/left:2-22
1621 +/branches/left-sub:4-19
1622 +/branches/right:2-22
1623 PROPS-END
1624
1625