Re: Stacked GIT 0.3 (now more Quilt-like)
- From
- Catalin Marinas <catalin.marinas@gmail.com>
- Date
- Jul 3, 2005, 10:08 UTC
- Message-ID
- <1120385280.6845.12.camel@localhost.localdomain>
- In-Reply-To
- <m3ekagp9mk.fsf@telia.com>
Hi Peter,
Thanks for trying this tool.
On Sun, 2005-07-03 at 10:38 +0200, Peter Osterlund wrote:
Show 5 quoted lines
> This is good stuff and the 3-way merge really simplifies things. > However, if there is a merge conflict, you will basically be stuck > with a 2-way merge when resolving manually. It's usually much easier > if you can see all three version, so I think it's better to use -A > instead of -E in the diff3 command.
I know that using -A gives a more detailed output in case of a conflict. The problem is that you will get a conflict even if the changes are identical, making it impossible to detect when a patch was merged upstream.
For example:
ancestor: aaa branch1: aaa bbb branch2: aaa bbb
diff3 -E: aaa bbb diff3 -A: aaa <<<<<<< ancestor ======= bbb >>>>>>> branch2
In version 0.3, in case of a conflict, StGIT leaves 3 files in the tree: file.older, file.local and file.remote so that one can use a graphical tool to do the merge. I think these names are a bit misleading, .remote extension means the file in the patch and .local is the one in the tree before pushing the patch. Anyway, it might be invoking a graphical tool directly from gitmergeonefile.py.
Speaking of detecting upstream merges, the latest StGIT snapshot shows a '0' in front of a patch if it is empty, when 'stg series' is invoked. When pushing, if all the changes are the same, it notifies you that the patch is empty so that it can be safely removed.
-- Catalin