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.