@@ -140,34 +140,6 @@ func TestManager_CloneAndResolve(t *testing.T) {
140140 })
141141}
142142
143- func TestManagerCheckMergeUsesAlreadyFetchedRevisionsWithoutMutation (t * testing.T ) {
144- t .Parallel ()
145- ctx := context .Background ()
146- remote , baseSHA , candidateSHA := setupRemote (t )
147- mgr := newManager (t )
148- if err := mgr .Clone (ctx , remote , "origin" ); err != nil {
149- t .Fatal (err )
150- }
151- path := mgr .mirrors ["origin" ].path
152- before := strings .TrimSpace (runGit (t , path , "show-ref" ))
153- beforeObjects := strings .TrimSpace (runGit (t , path , "count-objects" , "-v" ))
154- result , err := mgr .CheckMerge (ctx , path , baseSHA , candidateSHA )
155- if err != nil {
156- t .Fatal (err )
157- }
158- if result .Conflicted || result .MergeBase != baseSHA {
159- t .Fatalf ("unexpected merge result: %+v" , result )
160- }
161- after := strings .TrimSpace (runGit (t , path , "show-ref" ))
162- if before != after {
163- t .Fatalf ("merge check changed refs\n before: %s\n after: %s" , before , after )
164- }
165- afterObjects := strings .TrimSpace (runGit (t , path , "count-objects" , "-v" ))
166- if beforeObjects != afterObjects {
167- t .Fatalf ("merge check changed object store\n before: %s\n after: %s" , beforeObjects , afterObjects )
168- }
169- }
170-
171143func TestManager_CreateAndInspect (t * testing.T ) {
172144 t .Parallel ()
173145 ctx := context .Background ()
@@ -804,98 +776,3 @@ func TestManager_DiffIncludesWorkingChanges(t *testing.T) {
804776 t .Fatalf ("working-tree diff missing untracked file:\n %s" , diff )
805777 }
806778}
807-
808- // TestManagerCheckMergeNoFalsePositiveOnConflictMarkerInContent proves that
809- // a file containing conflict markers in its content does not trigger a
810- // false-positive conflict detection when the merge is actually clean.
811- func TestManagerCheckMergeNoFalsePositiveOnConflictMarkerInContent (t * testing.T ) {
812- t .Parallel ()
813- ctx := context .Background ()
814-
815- dir := t .TempDir ()
816- remote := filepath .Join (dir , "remote.git" )
817- runGit (t , "" , "init" , "--bare" , remote )
818-
819- src := filepath .Join (dir , "src" )
820- runGit (t , "" , "clone" , remote , src )
821-
822- // Base commit
823- writeFile (t , filepath .Join (src , "file.txt" ), "hello" )
824- runGit (t , src , "add" , "." )
825- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "base" )
826- runGit (t , src , "push" , "origin" , "master" )
827-
828- // Branch that modifies file.txt to contain conflict markers in content.
829- marker := strings .Repeat ("<" , 7 )
830- runGit (t , src , "checkout" , "-b" , "feature" )
831- writeFile (t , filepath .Join (src , "file.txt" ), marker + " HEAD\n world\n =======\n universe\n " + strings .Repeat (">" , 7 )+ " branch\n " )
832- runGit (t , src , "add" , "." )
833- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "feature adds conflict markers in content" )
834- runGit (t , src , "push" , "origin" , "feature" )
835-
836- // Master adds a different file (no conflict with feature)
837- runGit (t , src , "checkout" , "master" )
838- writeFile (t , filepath .Join (src , "other.txt" ), "different change" )
839- runGit (t , src , "add" , "." )
840- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "master adds other file" )
841- runGit (t , src , "push" , "origin" , "master" )
842-
843- baseSHA := strings .TrimSpace (runGit (t , src , "rev-parse" , "master" ))
844- candidateSHA := strings .TrimSpace (runGit (t , src , "rev-parse" , "feature" ))
845-
846- mgr := newManager (t )
847- if err := mgr .Clone (ctx , remote , "origin" ); err != nil {
848- t .Fatal (err )
849- }
850- path := mgr .mirrors ["origin" ].path
851-
852- result , err := mgr .CheckMerge (ctx , path , baseSHA , candidateSHA )
853- if err != nil {
854- t .Fatal (err )
855- }
856- if result .Conflicted {
857- t .Fatalf ("false positive: merge reported conflict but branches merge cleanly. Result: %+v" , result )
858- }
859- }
860-
861- func TestManagerCheckMergeDetectsAddAddConflict (t * testing.T ) {
862- t .Parallel ()
863- ctx := context .Background ()
864-
865- dir := t .TempDir ()
866- remote := filepath .Join (dir , "remote.git" )
867- runGit (t , "" , "init" , "--bare" , remote )
868-
869- src := filepath .Join (dir , "src" )
870- runGit (t , "" , "clone" , remote , src )
871- writeFile (t , filepath .Join (src , "base.txt" ), "base" )
872- runGit (t , src , "add" , "." )
873- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "base" )
874- runGit (t , src , "push" , "origin" , "master" )
875-
876- runGit (t , src , "checkout" , "-b" , "feature" )
877- writeFile (t , filepath .Join (src , "same.txt" ), "feature" )
878- runGit (t , src , "add" , "." )
879- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "feature adds same path" )
880- runGit (t , src , "push" , "origin" , "feature" )
881-
882- runGit (t , src , "checkout" , "master" )
883- writeFile (t , filepath .Join (src , "same.txt" ), "master" )
884- runGit (t , src , "add" , "." )
885- runGit (t , src , "-c" , "user.email=test@example.com" , "-c" , "user.name=Test" , "commit" , "-m" , "master adds same path" )
886- runGit (t , src , "push" , "origin" , "master" )
887-
888- baseSHA := strings .TrimSpace (runGit (t , src , "rev-parse" , "master" ))
889- candidateSHA := strings .TrimSpace (runGit (t , src , "rev-parse" , "feature" ))
890- mgr := newManager (t )
891- if err := mgr .Clone (ctx , remote , "origin" ); err != nil {
892- t .Fatal (err )
893- }
894- result , err := mgr .CheckMerge (ctx , mgr .mirrors ["origin" ].path , baseSHA , candidateSHA )
895- if err != nil {
896- t .Fatal (err )
897- }
898- if ! result .Conflicted {
899- t .Fatalf ("add/add conflict reported clean: %+v" , result )
900- }
901- }
0 commit comments