I am on windows.
For various reasons we have multiple git instances of different svn branches.
Many times I want to fix an issue in repository A, generate a patch, and apply it to repository B. This works fine except if there are conflicts.
When rebasing I just right click the folder and use tortioseGit and select the resolve option. This brings up a nice gui to let me work through my conflicts.
Is there any way to accomplish this with rejected patch chunks?
Here is my current approach to creating/applying the patches
git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
All patches may not be compatible with one another. For example, if a patch has been applied, all the bugs fixed by that patch could reappear after another patch is applied. This is called a conflict situation. OPatch detects such situations and raises an error when a it detects a conflict.
To generate your patch do the following:
git format-patch --stdout first_commit^..last_commit > changes.patch
Now when you are ready to apply the patches:
git am -3 < changes.patch
the -3
will do a three-way merge if there are conflicts. At this point you can do a git mergetool
if you want to go to a gui or just manually merge the files using vim (the standard <<<<<<
, ||||||
, >>>>>>
conflict resolution).
If you are frequently running into the same conflict set when applying patches, rebasing or merging then you can use git rerere (reuse recorded resolution) function. This allows you to pre-define how conflicts should be resolved based on how you resolved them in the past. See http://git-scm.com/blog/2010/03/08/rerere.html for details of how this works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With