From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH v2 16/17] contrib: remove 'git-resurrect'
Date: Fri, 9 May 2014 14:11:42 -0500 [thread overview]
Message-ID: <1399662703-355-17-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1399662703-355-1-git-send-email-felipe.contreras@gmail.com>
No activity, no documentation, no tests, no chance of ever graduating.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
contrib/git-resurrect.sh | 182 -----------------------------------------------
1 file changed, 182 deletions(-)
delete mode 100755 contrib/git-resurrect.sh
diff --git a/contrib/git-resurrect.sh b/contrib/git-resurrect.sh
deleted file mode 100755
index d7e97bb..0000000
--- a/contrib/git-resurrect.sh
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/sh
-
-USAGE="[-a] [-r] [-m] [-t] [-n] [-b <newname>] <name>"
-LONG_USAGE="git-resurrect attempts to find traces of a branch tip
-called <name>, and tries to resurrect it. Currently, the reflog is
-searched for checkout messages, and with -r also merge messages. With
--m and -t, the history of all refs is scanned for Merge <name> into
-other/Merge <other> into <name> (respectively) commit subjects, which
-is rather slow but allows you to resurrect other people's topic
-branches."
-
-OPTIONS_KEEPDASHDASH=
-OPTIONS_STUCKLONG=
-OPTIONS_SPEC="\
-git resurrect $USAGE
---
-b,branch= save branch as <newname> instead of <name>
-a,all same as -l -r -m -t
-k,keep-going full rev-list scan (instead of first match)
-l,reflog scan reflog for checkouts (enabled by default)
-r,reflog-merges scan for merges recorded in reflog
-m,merges scan for merges into other branches (slow)
-t,merge-targets scan for merges of other branches into <name>
-n,dry-run don't recreate the branch"
-
-. git-sh-setup
-
-search_reflog () {
- sed -ne 's~^\([^ ]*\) .*\tcheckout: moving from '"$1"' .*~\1~p' \
- < "$GIT_DIR"/logs/HEAD
-}
-
-search_reflog_merges () {
- git rev-parse $(
- sed -ne 's~^[^ ]* \([^ ]*\) .*\tmerge '"$1"':.*~\1^2~p' \
- < "$GIT_DIR"/logs/HEAD
- )
-}
-
-_x40="[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]"
-_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
-
-search_merges () {
- git rev-list --all --grep="Merge branch '$1'" \
- --pretty=tformat:"%P %s" |
- sed -ne "/^$_x40 \($_x40\) Merge .*/ {s//\1/p;$early_exit}"
-}
-
-search_merge_targets () {
- git rev-list --all --grep="Merge branch '[^']*' into $branch\$" \
- --pretty=tformat:"%H %s" --all |
- sed -ne "/^\($_x40\) Merge .*/ {s//\1/p;$early_exit} "
-}
-
-dry_run=
-early_exit=q
-scan_reflog=t
-scan_reflog_merges=
-scan_merges=
-scan_merge_targets=
-new_name=
-
-while test "$#" != 0; do
- case "$1" in
- -b|--branch)
- shift
- new_name="$1"
- ;;
- -n|--dry-run)
- dry_run=t
- ;;
- --no-dry-run)
- dry_run=
- ;;
- -k|--keep-going)
- early_exit=
- ;;
- --no-keep-going)
- early_exit=q
- ;;
- -m|--merges)
- scan_merges=t
- ;;
- --no-merges)
- scan_merges=
- ;;
- -l|--reflog)
- scan_reflog=t
- ;;
- --no-reflog)
- scan_reflog=
- ;;
- -r|--reflog_merges)
- scan_reflog_merges=t
- ;;
- --no-reflog_merges)
- scan_reflog_merges=
- ;;
- -t|--merge-targets)
- scan_merge_targets=t
- ;;
- --no-merge-targets)
- scan_merge_targets=
- ;;
- -a|--all)
- scan_reflog=t
- scan_reflog_merges=t
- scan_merges=t
- scan_merge_targets=t
- ;;
- --)
- shift
- break
- ;;
- *)
- usage
- ;;
- esac
- shift
-done
-
-test "$#" = 1 || usage
-
-all_strategies="$scan_reflog$scan_reflog_merges$scan_merges$scan_merge_targets"
-if test -z "$all_strategies"; then
- die "must enable at least one of -lrmt"
-fi
-
-branch="$1"
-test -z "$new_name" && new_name="$branch"
-
-if test ! -z "$scan_reflog"; then
- if test -r "$GIT_DIR"/logs/HEAD; then
- candidates="$(search_reflog $branch)"
- else
- die 'reflog scanning requested, but' \
- '$GIT_DIR/logs/HEAD not readable'
- fi
-fi
-if test ! -z "$scan_reflog_merges"; then
- if test -r "$GIT_DIR"/logs/HEAD; then
- candidates="$candidates $(search_reflog_merges $branch)"
- else
- die 'reflog scanning requested, but' \
- '$GIT_DIR/logs/HEAD not readable'
- fi
-fi
-if test ! -z "$scan_merges"; then
- candidates="$candidates $(search_merges $branch)"
-fi
-if test ! -z "$scan_merge_targets"; then
- candidates="$candidates $(search_merge_targets $branch)"
-fi
-
-candidates="$(git rev-parse $candidates | sort -u)"
-
-if test -z "$candidates"; then
- hint=
- test "z$all_strategies" != "ztttt" \
- && hint=" (maybe try again with -a)"
- die "no candidates for $branch found$hint"
-fi
-
-echo "** Candidates for $branch **"
-for cmt in $candidates; do
- git --no-pager log --pretty=tformat:"%ct:%h [%cr] %s" --abbrev-commit -1 $cmt
-done \
-| sort -n | cut -d: -f2-
-
-newest="$(git rev-list -1 $candidates)"
-if test ! -z "$dry_run"; then
- printf "** Most recent: "
- git --no-pager log -1 --pretty=tformat:"%h %s" $newest
-elif ! git rev-parse --verify --quiet $new_name >/dev/null; then
- printf "** Restoring $new_name to "
- git --no-pager log -1 --pretty=tformat:"%h %s" $newest
- git branch $new_name $newest
-else
- printf "Most recent: "
- git --no-pager log -1 --pretty=tformat:"%h %s" $newest
- echo "** $new_name already exists, doing nothing"
-fi
--
1.9.2+fc1.28.g12374c0
next prev parent reply other threads:[~2014-05-09 19:13 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-09 19:11 [PATCH v2 00/17] contrib: cleanup Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 01/17] contrib: remove outdated README Felipe Contreras
2014-05-09 19:58 ` Junio C Hamano
2014-05-09 21:54 ` Felipe Contreras
2014-05-13 18:10 ` Martin Langhoff
2014-05-13 18:27 ` Junio C Hamano
2014-05-13 18:54 ` Felipe Contreras
2014-05-13 21:05 ` Junio C Hamano
2014-05-13 21:35 ` Martin Langhoff
2014-05-13 22:29 ` Felipe Contreras
2014-05-14 12:51 ` Philippe Vaucher
2014-05-14 19:35 ` Felipe Contreras
2014-05-14 19:55 ` Martin Langhoff
2014-05-14 20:26 ` Jeff King
2014-05-14 21:26 ` Felipe Contreras
2014-05-14 20:59 ` Junio C Hamano
2014-05-14 23:28 ` Felipe Contreras
2014-05-14 23:50 ` Martin Langhoff
2014-05-14 23:48 ` Felipe Contreras
2014-05-15 22:56 ` Junio C Hamano
2014-05-16 8:08 ` Felipe Contreras
2014-05-16 8:59 ` William Giokas
2014-05-16 10:21 ` Felipe Contreras
2014-05-16 11:25 ` William Giokas
2014-05-16 12:20 ` Felipe Contreras
2014-05-13 22:52 ` Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 02/17] contrib: remove 'vim' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 03/17] contrib: remove 'emacs' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 04/17] contrib: remove 'diffall' Felipe Contreras
2014-05-09 19:27 ` Tim Henigan
2014-05-09 19:11 ` [PATCH v2 05/17] contrib: remove 'hg-to-git' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 07/17] contrib: remove 'stats' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 08/17] contrib: remove 'convert-objects' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 09/17] contrib: remove 'git-shell-commands' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 10/17] contrib: reomve 'thunderbird-patch-inline' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 11/17] contrib: remove 'workdir' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 12/17] contrib: remove 'svn-fe' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 13/17] contrib: remove 'rerere-train' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 14/17] contrib: remove 'remotes2config' Felipe Contreras
2014-05-09 19:11 ` [PATCH v2 15/17] contrib: remove 'persistent-https' Felipe Contreras
2014-05-09 19:11 ` Felipe Contreras [this message]
2014-05-09 19:11 ` [PATCH v2 17/17] contrib: remove 'contacts' Felipe Contreras
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=1399662703-355-17-git-send-email-felipe.contreras@gmail.com \
--to=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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).