Your message dated Thu, 05 Mar 2009 15:47:05 +0000
with message-id <[email protected]>
and subject line Bug#513018: fixed in topgit 0.7-1
has caused the Debian Bug report #513018,
regarding topgit: Resumed create ignores branches contained in resolution
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
513018: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=513018
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: topgit
Version: 0.5-1
Severity: important
Tags: patch
This report has three parts. The first part is a short description of my
problem
without a precise way to recreate it. The second part is a complete shell
session
with all the commands needed to recreate the problem together with their
output.
In the third part I explain what I think is wrong in the source code and
include a patch to fix it.
Short description of problem
----------------------------
I try to megre three independent topic branches by the command
$ tg create t/merge t/a t/b t/2
There is a conflict merging t/a and t/b. I resolve it and type
$ tg create
After this the topic branch is seemingly set up but the base of the new branch
is at t/2. This is also where t/merge points to and the working directory
(apart from .topdeps and .topmsg) is also in this state.
I would expect alll this to be the merge of my resolution commit (the merge of
t/a and t/b) and t/2.
Recreation of problem
---------------------
Here is a compete shell session producing the problem.
All commands are shown from the creation of the git repository.
ga...@gabor ~/tmp/topgit$ git init
Initialized empty Git repository in /home/gabor/tmp/topgit/.git/
ga...@gabor ~/tmp/topgit$ echo 0 >file
ga...@gabor ~/tmp/topgit$ git add file
ga...@gabor ~/tmp/topgit$ git commit -m 'Created file with content 0.'
Created initial commit 294b3f1: Created file with content 0.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file
ga...@gabor ~/tmp/topgit$ tg create t/a
tg: Automatically marking dependency on master
tg: Creating t/a base from master...
Switched to a new branch "t/a"
tg: Topic branch t/a set up. Please fill .topmsg now and make initial commit.
tg: To abort: git rm -f .top* && git checkout master && tg delete t/a
ga...@gabor ~/tmp/topgit$ echo a >file
ga...@gabor ~/tmp/topgit$ git commit -a -m 'Changed content of file to a.'
Created commit 22ad7e0: Changed content of file to a.
3 files changed, 8 insertions(+), 1 deletions(-)
create mode 100644 .topdeps
create mode 100644 .topmsg
ga...@gabor ~/tmp/topgit$ tg create t/b master
tg: Creating t/b base from master...
Switched to a new branch "t/b"
tg: Topic branch t/b set up. Please fill .topmsg now and make initial commit.
tg: To abort: git rm -f .top* && git checkout master && tg delete t/b
ga...@gabor ~/tmp/topgit$ echo b >file
ga...@gabor ~/tmp/topgit$ echo 1 >file1
ga...@gabor ~/tmp/topgit$ git add file file1
ga...@gabor ~/tmp/topgit$ git commit -m 'Changed content of file to b & added
file1.'
Created commit 4645b70: Changed content of file to b & added file1.
4 files changed, 9 insertions(+), 1 deletions(-)
create mode 100644 .topdeps
create mode 100644 .topmsg
create mode 100644 file1
ga...@gabor ~/tmp/topgit$ tg create t/2 master
tg: Creating t/2 base from master...
Switched to a new branch "t/2"
tg: Topic branch t/2 set up. Please fill .topmsg now and make initial commit.
tg: To abort: git rm -f .top* && git checkout master && tg delete t/2
ga...@gabor ~/tmp/topgit$ echo 2 >file2
ga...@gabor ~/tmp/topgit$ git add file2
ga...@gabor ~/tmp/topgit$ git commit -m 'Added file2.'
Created commit 5e9af0b: Added file2.
3 files changed, 8 insertions(+), 0 deletions(-)
create mode 100644 .topdeps
create mode 100644 .topmsg
create mode 100644 file2
ga...@gabor ~/tmp/topgit$ tg create t/merge t/a t/b t/2
tg: Creating t/merge base from t/a...
tg: Merging t/merge base with t/b...
Auto-merged .topmsg
Auto-merged file
CONFLICT (content): Merge conflict in file
Recorded preimage for 'file'
Automatic merge failed; fix conflicts and then commit the result.
tg: Please commit merge resolution and call: tg create
tg: It is also safe to abort this operation using:
tg: git reset --hard some_branch
tg: (You are on a detached HEAD now.)
ga...@gabor ~/tmp/topgit$ echo c >file
ga...@gabor ~/tmp/topgit$ git add file
ga...@gabor ~/tmp/topgit$ git commit -m 'Resolved conflict: changed content of
file to c.'
fatal: ref HEAD is not a symbolic ref
Recorded resolution for 'file'.
Created commit 7f7221d: Resolved conflict: changed content of file to c.
ga...@gabor ~/tmp/topgit$ tg create
tg: Resuming t/merge setup...
tg: Creating t/merge base from t/2...
Switched to a new branch "t/merge"
tg: Topic branch t/merge set up. Please fill .topmsg now and make initial
commit.
tg: To abort: git rm -f .top* && git checkout t/a && tg delete t/merge
ga...@gabor ~/tmp/topgit$ ls
file file2
ga...@gabor ~/tmp/topgit$ cat file
0
ga...@gabor ~/tmp/topgit$ cat file2
2
The last few commands are for examining the working tree.
Further examination reveals that HEAD is t/merge, which is the same as t/2.
Solution to the problem
-----------------------
I think the key to the solution is the following excerpt from the above
session:
ga...@gabor ~/tmp/topgit$ tg create
tg: Resuming t/merge setup...
tg: Creating t/merge base from t/2...
Ooops! HEAD should be chosen as t/merge base and then t/2 should be merged in.
So I think the problem is that on resume, when there are still dependency
branches to merge in,
tg create uses the first such dependency to merge the rest in instead of using
HEAD to merge in
all of them.
The patch to fix this:
--- /usr/share/topgit/tg-create 2008-11-19 17:51:47.000000000 +0100
+++ /usr/share/topgit/tg-create 2009-01-24 16:45:06.000000000 +0100
@@ -80,7 +80,7 @@
## Create base
-if [ -n "$merge" ]; then
+if [ -n "$merge" -a -z "$restarted" ]; then
# Unshift the first item from the to-merge list
branch="${merge%% *}"
merge="${merge#* }"
Best wishes,
Gábor Braun
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (990, 'stable'), (650, 'testing'), (600, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.24-etchnhalf.1-686
Locale: LANG=hu_HU.UTF-8, LC_CTYPE=hu_HU.UTF-8 (charmap=UTF-8)
Versions of packages topgit depends on:
ii git-core 1:1.5.6.5-2 fast, scalable, distributed revisi
topgit recommends no packages.
-- no debconf information
--- End Message ---
--- Begin Message ---
Source: topgit
Source-Version: 0.7-1
We believe that the bug you reported is fixed in the latest version of
topgit, which is due to be installed in the Debian FTP archive:
topgit_0.7-1.diff.gz
to pool/main/t/topgit/topgit_0.7-1.diff.gz
topgit_0.7-1.dsc
to pool/main/t/topgit/topgit_0.7-1.dsc
topgit_0.7-1_all.deb
to pool/main/t/topgit/topgit_0.7-1_all.deb
topgit_0.7.orig.tar.gz
to pool/main/t/topgit/topgit_0.7.orig.tar.gz
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Uwe Kleine-König <[email protected]> (supplier of updated topgit
package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Thu, 05 Mar 2009 12:09:31 +0100
Source: topgit
Binary: topgit
Architecture: source all
Version: 0.7-1
Distribution: unstable
Urgency: low
Maintainer: Debian TopGit maintainers <[email protected]>
Changed-By: Uwe Kleine-König <[email protected]>
Description:
topgit - a Git patch queue manager
Closes: 499072 508079 513018 514157
Changes:
topgit (0.7-1) unstable; urgency=low
.
[ martin f. krafft ]
* Provide new tg2quilt target tg-cleanexport, which recreates debian/patches
in one step.
* Actually install the bash completion script; thanks to Uwe Kleine-König
for noticing and providing a patch (closes: #499072).
* Add a note to tg2quilt.mk's header explaining the need to soft-include
tg2quilt.mk, to avoid the topgit build-dependency.
* Suggest the git-email package (closes: #508079).
* Suggest the make and quilt packages.
* Fix GPL version in copyright file (closes: #514157).
* Deprecate tg2quilt.mk's $PATCHES_DIR variable and put a warning in place
to point people to $QUILT_PATCH_DIR instead.
* change maintainer to [email protected], add Uwe Kleine-König to
uploaders.
.
[ Uwe Kleine-König ]
* new upstream release topgit-0.7
- fixes Resumed create ignores branches contained in resolution
(Closes: #513018)
Checksums-Sha1:
ac55dcd1b2b9908f88049855846fb0e68f52f5af 1207 topgit_0.7-1.dsc
65205aea0dafc7af2ea6557b221a11020f77a27b 23437 topgit_0.7.orig.tar.gz
f0e2d6be6ecfd1b5cc44a269350dc02cb730b02c 8553 topgit_0.7-1.diff.gz
6c626e544efdb93f9523208433db0e68d46f0817 38482 topgit_0.7-1_all.deb
Checksums-Sha256:
bf5085050d453029e35ad2d7707ff880627fe488b963035656f1e76c02ce40c0 1207
topgit_0.7-1.dsc
f8089389af45579c53f33feb190fe125c9e433cf6bc5111319480152adec2db9 23437
topgit_0.7.orig.tar.gz
597db1bec74b63b0f15959b5f03cf77e426ec2f2f1da9187602cb5e1d448da45 8553
topgit_0.7-1.diff.gz
56fac30423df2586e69030633eb385e5d9fca7e91566c47f918ebe0939e6c89f 38482
topgit_0.7-1_all.deb
Files:
8e6a3613752b5be7127b959263d0bcf6 1207 devel optional topgit_0.7-1.dsc
30e08238f9b2410ee78fe205f4db8589 23437 devel optional topgit_0.7.orig.tar.gz
4ad18c55b3bea153a96c8c1c6915544a 8553 devel optional topgit_0.7-1.diff.gz
532e6981a37e5b16f74444cd69c64632 38482 devel optional topgit_0.7-1_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkmv7swACgkQIgvIgzMMSnUufwCgtQjcwtMrjxquLjkq1nCUUjTJ
wtMAnR++UAcClMbjTevEalmwAm/q29Fg
=T7Wz
-----END PGP SIGNATURE-----
--- End Message ---