Re: [TopGit] aborting tg create leafs deleted .top* files in index
- From
Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
- Date
- Feb 27, 2009, 08:32 UTC
- Message-ID
- <20090227083211.GA10326@pengutronix.de>
- In-Reply-To
- <36ca99e90902262247q783f8ce1j20bdc971cfc22948@mail.gmail.com>
Hi Bert,
On Fri, Feb 27, 2009 at 07:47:15AM +0100, Bert Wesarg wrote:
Show 56 quoted lines
> On Fri, Feb 6, 2009 at 20:03, Bert Wesarg <bert.wesarg@googlemail.com> wrote: > > Hi, > > > > after executing the abort commands to remove a just created new topic > > branch, the .top* files from the previous branch are markes as > > deleted. > > > > To reproduce: > > > > $ md g > > $ cd g > > $ git --version > > git version 1.6.1.rc4 > > $ git init > > Initialized empty Git repository in /home/bertw/tmp/g/.git/ > > $ touch file > > $ git add file > > $ git commit -m init > > [master (root-commit)]: created 2155efd: "init" > > 0 files changed, 0 insertions(+), 0 deletions(-) > > create mode 100644 file > > $ tg create t/test1 > > tg: Automatically marking dependency on master > > tg: Creating t/test1 base from master... > > Switched to a new branch "t/test1" > > tg: Topic branch t/test1 set up. Please fill .topmsg now and make > > initial commit. > > tg: To abort: git rm -f .top* && git checkout master && tg delete t/test1 > > $ git commit -m "topic test1" > > [t/test1]: created 3cb4fbf: "topic test1" > > 2 files changed, 7 insertions(+), 0 deletions(-) > > create mode 100644 .topdeps > > create mode 100644 .topmsg > > $ tg create t/test2 > > tg: Automatically marking dependency on t/test1 > > tg: Creating t/test2 base from t/test1... > > Switched to a new branch "t/test2" > > tg: Topic branch t/test2 set up. Please fill .topmsg now and make > > initial commit. > > tg: To abort: git rm -f .top* && git checkout t/test1 && tg delete t/test2 > > $ git rm -f .top* && git checkout t/test1 && tg delete t/test2 > > rm '.topdeps' > > rm '.topmsg' > > D .topdeps > > D .topmsg > > Switched to branch "t/test1" > > $ git status > > # On branch t/test1 > > # Changes to be committed: > > # (use "git reset HEAD <file>..." to unstage) > > # > > # deleted: .topdeps > > # deleted: .topmsg > > # > > $ > Anyone?
I have git version 1.5.6.5 and for me your recipe[1] ends in
$ git status # On branch t/test1 nothing to commit (working directory clean)
With git 1.6.1.3 I can reproduce it though.
Here comes a git only test case:
git init touch file git add file git commit -m 'initial commit' git checkout -b next echo next > file git add file git rm -f file git checkout master git status What about the patch below? It seems git-checkout from 1.6.x merges the changes done to the newly checked out branch.
Best regards Uwe
[1] I had to use mkdir where you wrote md ;-)
From e5b1a979cb22285134c5b7da942984f70a1a3059 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de> Date: Fri, 27 Feb 2009 09:22:46 +0100 Subject: [PATCH] suggest checkout -f to abort the creation of a branch
git checkout behaves differently for different versions of git (here 1.5.6.5 and 1.6.1.3) when the index and working copy don't match HEAD.
git checkout -f does the right thing for both versions.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- tg-create.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tg-create.sh b/tg-create.sh index 6e84907..45bb79b 100644 --- a/tg-create.sh +++ b/tg-create.sh @@ -140,6 +140,6 @@ git add -f "$root_dir/.topmsg" info "Topic branch $name set up. Please fill .topmsg now and make initial commit." -info "To abort: git rm -f .top* && git checkout ${deps%% *} && $tg delete $name" +info "To abort: git checkout -f ${deps%% *} && $tg delete $name" # vim:noet
-- 1.5.6.5 -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |