From: Junio C Hamano <junio@pobox.com>
To: "Jörg Sommer" <joerg@alea.gnuu.de>
Cc: git@vger.kernel.org, gitster@pobox.com, Johannes.Schindelin@gmx.de
Subject: Re: [PATCH v2 04/13] Teach rebase interactive the mark command
Date: Mon, 21 Apr 2008 22:32:17 -0700 [thread overview]
Message-ID: <7vabjm78v2.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1208132469-26471-4-git-send-email-joerg@alea.gnuu.de> (Jörg Sommer's message of "Mon, 14 Apr 2008 02:21:00 +0200")
Jörg Sommer <joerg@alea.gnuu.de> writes:
> This new command can be used to set symbolic marks for an commit while
> doing a rebase. This symbolic name can later be used for merges or
> resets.
>
> The decision to use references for the marks and not files like done with
> the rewritten commits for preserve merges was made to ensure no commit
> objects get lost if prune is started while (a long term) rebase is
> running. This also unifies the checking of the validity of marks and
> references by using rev-parse for it.
>
> The usage of : as the sign for marks conforms with the tag sign of
> fast-export and fast-import.
>
> Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de>
> ---
> git-rebase--interactive.sh | 37 ++++++++++++++++++++++++++++++++++++-
> t/t3404-rebase-interactive.sh | 17 +++++++++++++++++
> 2 files changed, 53 insertions(+), 1 deletions(-)
>
> diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
> index 531ee94..6ac316a 100755
> --- a/git-rebase--interactive.sh
> +++ b/git-rebase--interactive.sh
> @@ -35,6 +35,8 @@ mark the corrected paths with 'git add <paths>', and
> run 'git rebase --continue'"
> export GIT_CHERRY_PICK_HELP
>
> +mark_prefix=refs/rebase-marks/
> +
> warn () {
> echo "$*" >&2
> }
> @@ -105,7 +107,13 @@ die_with_patch () {
> }
>
> cleanup_before_quit () {
> - rm -rf "$DOTEST"
> + rm -rf "$DOTEST" &&
> + for ref in "$GIT_DIR/$mark_prefix"*
> + do
> + test "$ref" = "$GIT_DIR/$mark_prefix*" && continue
> + git update-ref -d "${ref#$GIT_DIR/}" "${ref#$GIT_DIR/}" || \
> + return 1
> + done
In practice nobody would "run" pack-refs during the rebase session, but I
have to wonder if it can be triggered to run as part of automated gc or
something, in which case this loop does not work as intended. It needs to
be rewritten using for-each-ref.
> @@ -244,6 +252,19 @@ peek_next_command () {
> sed -n "1s/ .*$//p" < "$TODO"
> }
>
> +mark_to_ref () {
> + case "$1" in
> + :[!/]*)
> + # :/SOMETHING is a reference for the last commit whose
> + # message starts with SOMETHING
> + echo "$mark_prefix${1#:}"
> + ;;
What was the conclusion of the mark-syntax discussion?
While I know the bang in ":[!negated]" is POSIX, I wonder if everybody's
shell we care about groks it.
Could people run this with the shell they care about being supported
(Solaris /bin/sh does not count) try this and yell loudly if you get
"matches" please? I know bash and dash are Ok, but I do not have easy
access to various flabours of BSDs (OSX included).
case ":/foo" in
:[!/]*) echo matches ;;
*) echo does not ;;
esac
next prev parent reply other threads:[~2008-04-22 5:33 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-23 21:42 [PATCH 1/4] Move redo merge code in a function Jörg Sommer
2008-03-23 21:42 ` [PATCH 2/4] Rework redo_merge Jörg Sommer
2008-03-23 21:42 ` [PATCH 3/4] Add a function for get the parents of a commit Jörg Sommer
2008-03-23 21:42 ` [PATCH 4/4] git-rebase -i: New option to support rebase with merges Jörg Sommer
2008-03-23 22:41 ` Johannes Schindelin
2008-03-24 11:14 ` Jörg Sommer
2008-03-24 13:08 ` Johannes Schindelin
2008-03-24 23:40 ` Jörg Sommer
2008-03-24 18:35 ` Junio C Hamano
2008-03-24 23:30 ` Junio C Hamano
2008-03-25 10:13 ` Jörg Sommer
2008-03-26 8:02 ` Junio C Hamano
2008-04-09 23:58 ` Teach rebase interactive more commands to do better preserve merges Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 01/10] Teach rebase interactive the mark command Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 02/10] Teach rebase interactive the reset command Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 03/10] Teach rebase interactive the merge command Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 04/10] Move redo merge code in a function Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 05/10] Rework redo_merge Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 06/10] Unify the lenght of $SHORT* and the commits in the TODO list Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 07/10] fake-editor: output TODO list if unchanged Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 08/10] Don't append default merge message to -m message Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 09/10] Select all lines with fake-editor Jörg Sommer
2008-04-09 23:58 ` [PATCH/RFC 10/10] Do rebase with preserve merges with advanced TODO list Jörg Sommer
2008-04-12 0:00 ` [PATCH/RFC 06/10] Unify the lenght of $SHORT* and the commits in the " Junio C Hamano
2008-04-12 9:13 ` Jörg Sommer
2008-04-13 6:20 ` Junio C Hamano
2008-04-13 16:39 ` Jörg Sommer
2008-04-14 1:06 ` Tarmigan
2008-04-11 23:56 ` [PATCH/RFC 02/10] Teach rebase interactive the reset command Junio C Hamano
2008-04-12 9:37 ` Jörg Sommer
2008-04-10 9:33 ` [PATCH/RFC 01/10] Teach rebase interactive the mark command Mike Ralphson
2008-04-12 10:17 ` Jörg Sommer
2008-04-11 23:48 ` Junio C Hamano
2008-04-12 10:11 ` Jörg Sommer
2008-04-13 3:56 ` Shawn O. Pearce
2008-04-13 16:50 ` Jörg Sommer
2008-04-14 6:24 ` Shawn O. Pearce
2008-04-14 6:54 ` Junio C Hamano
2008-04-14 10:06 ` Jörg Sommer
2008-04-14 0:20 ` [PATCH v2 01/13] fake-editor: output TODO list if unchanged Jörg Sommer
2008-04-14 0:20 ` [PATCH v2 02/13] Don't append default merge message to -m message Jörg Sommer
2008-04-14 0:20 ` [PATCH v2 03/13] Move cleanup code into it's own function Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 04/13] Teach rebase interactive the mark command Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 05/13] Teach rebase interactive the reset command Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 06/13] Move redo merge code in a function Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 07/13] Teach rebase interactive the merge command Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 08/13] Unify the lenght of $SHORT* and the commits in the TODO list Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 09/13] Select all lines with fake-editor Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 10/13] Do rebase with preserve merges with advanced TODO list Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 11/13] Add option --first-parent Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 12/13] Teach rebase interactive the tag command Jörg Sommer
2008-04-14 0:21 ` [PATCH v2 13/13] Add option --preserve-tags Jörg Sommer
2008-04-22 5:32 ` Junio C Hamano [this message]
2008-04-22 8:13 ` [PATCH v2 04/13] Teach rebase interactive the mark command Junio C Hamano
2008-04-22 8:52 ` Johannes Schindelin
2008-04-22 9:55 ` Jörg Sommer
2008-04-22 10:31 ` Johannes Schindelin
2008-04-22 16:56 ` Junio C Hamano
2008-04-22 17:12 ` Johannes Schindelin
2008-04-29 0:25 ` Junio C Hamano
2008-04-29 0:39 ` Johannes Schindelin
2008-04-29 5:17 ` Junio C Hamano
2008-04-29 7:12 ` Johannes Sixt
2008-04-29 10:52 ` Johannes Schindelin
2008-04-29 21:16 ` Junio C Hamano
2008-04-29 21:25 ` Johannes Schindelin
2008-04-29 22:23 ` Junio C Hamano
2008-04-29 22:55 ` Johannes Schindelin
2008-04-29 23:06 ` Junio C Hamano
2008-04-29 23:31 ` Johannes Schindelin
2008-04-30 1:23 ` Junio C Hamano
2008-04-30 6:25 ` Johannes Sixt
2008-04-30 7:10 ` Junio C Hamano
2008-04-30 8:47 ` Johannes Schindelin
2008-04-30 9:19 ` Junio C Hamano
2008-04-30 10:29 ` Johannes Sixt
2008-04-30 11:56 ` Johannes Schindelin
2008-05-01 19:04 ` Junio C Hamano
2008-05-03 12:45 ` Johannes Schindelin
2008-05-03 17:09 ` Junio C Hamano
2008-05-04 9:38 ` Johannes Schindelin
2008-05-04 12:52 ` Jörg Sommer
2008-04-30 13:06 ` Dmitry Potapov
2008-05-01 12:59 ` Johannes Schindelin
2008-04-22 18:04 ` Junio C Hamano
2008-04-25 9:11 ` Jörg Sommer
2008-04-25 9:44 ` [PATCH v2.2] " Jörg Sommer
2008-04-27 6:13 ` Junio C Hamano
2008-04-27 8:28 ` Jörg Sommer
2008-04-14 10:39 ` [PATCH v2.1] " Jörg Sommer
2008-04-14 23:29 ` Shawn O. Pearce
2008-04-20 23:44 ` mark parsing in fast-import Jörg Sommer
2008-04-21 0:26 ` Shawn O. Pearce
2008-04-21 8:41 ` Jörg Sommer
2008-04-21 23:59 ` Shawn O. Pearce
2008-04-22 9:39 ` Jörg Sommer
2008-04-22 23:15 ` Shawn O. Pearce
2008-04-25 9:04 ` [PATCH v2] Make mark parsing much more restrictive Jörg Sommer
2008-04-20 16:52 ` [PATCH v2 02/13] Don't append default merge message to -m message Junio C Hamano
2008-04-21 0:17 ` Jörg Sommer
2008-04-22 5:27 ` Junio C Hamano
2008-03-23 22:33 ` [PATCH 3/4] Add a function for get the parents of a commit Johannes Schindelin
2008-03-23 22:29 ` [PATCH 2/4] Rework redo_merge Johannes Schindelin
2008-03-23 22:26 ` [PATCH 1/4] Move redo merge code in a function Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vabjm78v2.fsf@gitster.siamese.dyndns.org \
--to=junio@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=joerg@alea.gnuu.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).