Code

Merge branch 'en/merge-recursive'
authorJunio C Hamano <gitster@pobox.com>
Tue, 30 Nov 2010 01:52:35 +0000 (17:52 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Nov 2010 01:52:35 +0000 (17:52 -0800)
* en/merge-recursive: (41 commits)
  t6022: Use -eq not = to test output of wc -l
  merge-recursive:make_room_for_directories - work around dumb compilers
  merge-recursive: Remove redundant path clearing for D/F conflicts
  merge-recursive: Make room for directories in D/F conflicts
  handle_delete_modify(): Check whether D/F conflicts are still present
  merge_content(): Check whether D/F conflicts are still present
  conflict_rename_rename_1to2(): Fix checks for presence of D/F conflicts
  conflict_rename_delete(): Check whether D/F conflicts are still present
  merge-recursive: Delay modify/delete conflicts if D/F conflict present
  merge-recursive: Delay content merging for renames
  merge-recursive: Delay handling of rename/delete conflicts
  merge-recursive: Move handling of double rename of one file to other file
  merge-recursive: Move handling of double rename of one file to two
  merge-recursive: Avoid doubly merging rename/add conflict contents
  merge-recursive: Update merge_content() call signature
  merge-recursive: Update conflict_rename_rename_1to2() call signature
  merge-recursive: Structure process_df_entry() to handle more cases
  merge-recursive: Have process_entry() skip D/F or rename entries
  merge-recursive: New function to assist resolving renames in-core only
  merge-recursive: New data structures for deferring of D/F conflicts
  ...

Conflicts:
t/t6020-merge-df.sh
t/t6036-recursive-corner-cases.sh

1  2 
merge-recursive.c
t/t3030-merge-recursive.sh
t/t6020-merge-df.sh
t/t6022-merge-rename.sh
t/t6036-recursive-corner-cases.sh

Simple merge
Simple merge
index 5d91d056d2ff97bb4253671cde8ac9a207bd6bd9,b129f1dbd5a5ffe4413ea359f3e893e935117115..eec8f4e3edd85e350f5b8d8c86415317cce2aba1
@@@ -6,22 -6,25 +6,25 @@@
  test_description='Test merge with directory/file conflicts'
  . ./test-lib.sh
  
- test_expect_success 'prepare repository' \
- 'echo "Hello" > init &&
- git add init &&
- git commit -m "Initial commit" &&
- git branch B &&
- mkdir dir &&
- echo "foo" > dir/foo &&
- git add dir/foo &&
- git commit -m "File: dir/foo" &&
- git checkout B &&
- echo "file dir" > dir &&
- git add dir &&
- git commit -m "File: dir"'
+ test_expect_success 'prepare repository' '
+       echo Hello >init &&
+       git add init &&
+       git commit -m initial &&
+       git branch B &&
+       mkdir dir &&
+       echo foo >dir/foo &&
+       git add dir/foo &&
+       git commit -m "File: dir/foo" &&
+       git checkout B &&
+       echo file dir >dir &&
+       git add dir &&
+       git commit -m "File: dir"
+ '
  
  test_expect_success 'Merge with d/f conflicts' '
 -      test_must_fail git merge master
 +      test_expect_code 1 git merge "merge msg" B master
  '
  
  test_expect_success 'F/D conflict' '
Simple merge
index 004c365ad6b32fff16c3c96ef2b6a173157b02a8,a2e5c5c08fdacbc50e8d9e464665f0e9c1bcfccf..871577d90cc2817ffcc0cfe1ecf76aab6be61723
@@@ -14,8 -14,8 +14,8 @@@ test_description='recursive merge corne
  #  R1  R2
  #
  
- test_expect_success setup '
+ test_expect_success 'setup basic criss-cross + rename with no modifications' '
 -      ten="0 1 2 3 4 5 6 7 8 9"
 +      ten="0 1 2 3 4 5 6 7 8 9" &&
        for i in $ten
        do
                echo line $i in a sample file