hi,

   ill send out a concrete example when I get back home

 Manoj

On September 7, 2014 8:41:45 PM PDT, Brian May <br...@microcomaustralia.com.au> 
wrote:
>On 8 September 2014 04:05, Ben Hutchings <b...@decadent.org.uk> wrote:
>
>> How does git-debcherry cope with the overlapping changes when
>generating
>> debian/patches?  What can you do if it fails to linearise the changes
>> (as, apparently, it may sometimes do)?
>>
>
>Just did some fiddling.
>
>I have no idea if this is the git-debcherry I should be using or not,
>so
>far it is the only copy I have found:  git://pivot.cs.unb.ca/gitpkg.git
>
>I created a script that generates a some commits on different feature
>branches, with a deliberate conflict.
>
>Unexpectedly, this means there is only one patch generating with both
>feature branches included. However the results appear to be technically
>correct.
>
>My random thought: I like being able to predict what will happen to
>patches
>in git-dpm. For example, if I supply the git-debcherry produced patch
>file
>name, when upstream get around to looking at it, that patch may no
>longer
>exist because I (accidentally?) created a newer patch that conflicts.
>
>Not sure if there is an easy way to tell if two feature branches
>conflict
>or not. This might be me and/or something that can be fixed in
>git-debcherry though.
>
>Regardless, if you need to make a sequence of changes, say to one
>file, git-dpm would appear to be the better choice, I think.
>
>Note the script does a "rm -rf a", so don't do this on anything
>important. git-debcherry location is also hard coded.
>
>
>=== cut ===
>#!/bin/sh
>
>set -ex
>
>rm -rf a
>
>mkdir a
>cd a
>git init
>
>touch readme.txt
>git add readme.txt
>git commit  -m "upstream"
>
>git branch upstream
>
># feature a version 1
>git checkout -b feature_a upstream
>echo "My line 1" > readme.txt
>echo "My line 1" > readme0.txt
>git add readme.txt readme0.txt
>git commit -m "feature a version 1"
>
># feature b version 1
>git checkout -b feature_b upstream
>echo "My line 2" > readme2.txt
>git add readme2.txt
>git commit -m "feature b version 1"
>
># merge feature a and feature b into debian
>git checkout -b debian upstream
>git merge feature_a -m "merge feature a"
>git merge feature_b -m "merge feature b"
>
># modify feature a
>git checkout feature_a
>echo "My line 1 (modified)" > readme.txt
>git add readme.txt
>git commit -m "feature a version 2"
>
># merge feature a into debian
>git checkout debian
>git merge feature_a -m "merge feature a"
>
># modify feature b, make it conflict with feature a
>git checkout feature_b
>echo "My line 1 (extra modified)" > readme.txt
>echo "My line 2 (extra modified)" > readme2.txt
>git add readme.txt readme2.txt
>git commit -m "feature b version 2"
>
># merge feature b into debian, resolve conflict
>git checkout debian
>git merge feature_b -m "merge feature b" -X theirs
>
># generate patch
>../gitpkg/git-debcherry -o debian/patches upstream
>../gitpkg/git-debcherry --stat upstream
>=== cut ===
>
>The gives me one patch file, with all the changes:
>
>=== cut ===
>>From 71ed7d5182996226fdaa4c1195a3e0dd0bb3fce7 Mon Sep 17 00:00:00 2001
>From: Brian May <br...@microcomaustralia.com.au>
>Date: Mon, 8 Sep 2014 13:13:35 +1000
>Subject: [PATCH] debcherry fixup patch
>
>18eb718 feature b version 2
>         - no changes against upstream or conflicts
>558086e feature a version 2
>         - extra changes or conflicts
>a898018 feature b version 1
>         - extra changes or conflicts
>daa2cc6 feature a version 1
>         - extra changes or conflicts
>---
> readme.txt  | 1 +
> readme0.txt | 1 +
> readme2.txt | 1 +
> 3 files changed, 3 insertions(+)
> create mode 100644 readme0.txt
> create mode 100644 readme2.txt
>
>diff --git a/readme.txt b/readme.txt
>index e69de29..2f782d4 100644
>--- a/readme.txt
>+++ b/readme.txt
>@@ -0,0 +1 @@
>+My line 1 (extra modified)
>diff --git a/readme0.txt b/readme0.txt
>new file mode 100644
>index 0000000..d6d5ab4
>--- /dev/null
>+++ b/readme0.txt
>@@ -0,0 +1 @@
>+My line 1
>diff --git a/readme2.txt b/readme2.txt
>new file mode 100644
>index 0000000..977df1d
>--- /dev/null
>+++ b/readme2.txt
>@@ -0,0 +1 @@
>+My line 2 (extra modified)
>-- 
>1.9.1
>=== cut ===
>-- 
>Brian May <br...@microcomaustralia.com.au>

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.

Reply via email to