From 8cbf8eaf63d7888cd459762102d0d3af71ea6fa6 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 14 Feb 2006 18:00:34 -0800 Subject: [PATCH] Update TO script, and also some UI issues. --- TO | 44 ++++++++++++++++++++++++++++++-------------- TODO | 17 +++++++++++++++++ 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/TO b/TO index abc932e8..6fb39243 100755 --- a/TO +++ b/TO @@ -1,17 +1,33 @@ #!/bin/sh -clean= -case "$1" in ---clean) - branch=`git symbolic-ref HEAD` && - test refs/heads/master = "$branch" || { - echo >&2 Not on master +clean= next=next +while case $# in 0) break ;; esac +do + case "$1" in + --clean) + branch=`git symbolic-ref HEAD` && + test refs/heads/master = "$branch" || { + echo >&2 Not on master + exit 1 + } + clean=t + ;; + --next) + test 2 -le $# || { + echo >&2 "Need argument" + exit 1 + } + next="$2" + git rev-parse --verify "$next" >/dev/null || exit + shift + ;; + *) + echo >&2 "$0 [--clean | --next test-next ]" exit 1 - } - clean=t + ;; + esac shift - ;; -esac +done LF=' ' @@ -24,8 +40,8 @@ do rebase= done= not_done= trouble= # (1) - only_next_1=`git-rev-list ^master "^$topic" next | sort` - only_next_2=`git-rev-list ^master next | sort` + only_next_1=`git-rev-list ^master "^$topic" ${next} | sort` + only_next_2=`git-rev-list ^master ${next} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git-rev-list "^$topic" master` @@ -47,7 +63,7 @@ do # (3) not_in_next=` - git-rev-list --pretty=oneline ^next "$topic" | + git-rev-list --pretty=oneline ^${next} "$topic" | sed -e 's/^[0-9a-f]* / - /' ` if test -n "$not_in_next" @@ -56,7 +72,7 @@ do then trouble="${LF}### MODIFIED AFTER COOKED ###" fi - not_done="${LF}Still not merged in next$rebase.$LF$not_in_next" + not_done="${LF}Still not merged in ${next}$rebase.$LF$not_in_next" elif test -n "$done" then not_done= diff --git a/TODO b/TODO index a38f6ebe..8b5dd0f0 100644 --- a/TODO +++ b/TODO @@ -24,6 +24,23 @@ Documentation by Bruce Fields ongoing and things are looking better. +UI +-- + +* Make "git branch -d foo" while on foo branch suggest "maybe + you want to go back to 'master'?" + +* Error message from "git checkout -b bar v2.6.10" should assume + v2.6.10 is an attempt to switch to a new branch based on + mistyped tag, not an attempt to revert path v2.6.10 from the + HEAD commit with extra "make and switch to this branch" + argument. + +* "git commit [-i|-o] paths..." with misspelled paths would be + silently ignored. Add a flag to ls-files to catch unmatched + pathspec to prevent this. + + Design issues ------------- -- 2.11.0