mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@suse.cz>
To: torvalds@osdl.org, akpm@osdl.org
Cc: linux-kernel@vger.kernel.org
Subject: [RESEND][PATCH] Script for automated historical Git tree grafting
Date: Sun, 24 Sep 2006 19:57:42 +0200	[thread overview]
Message-ID: <20060924175542.13734.79434.stgit@machine.or.cz> (raw)

This script enables Git users to easily graft the historical Git tree
(Bitkeeper history import) to the current history. It will also record
the appropriate tags in your refs tree as suggested by Marcel Holtmann.

Signed-off-by: Petr Baudis <pasky@suse.cz>
---

  Yet another resend, this time with actual difference! :-)

  I have pondered adding support for "local grafting" suggested by
Marcel Holtmann but setting up the tags properly would be impossible
in that case and overally you are much better off just setting manually
alternates and the single line in grafts file.

 scripts/git-gethistory.sh |   47 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/scripts/git-gethistory.sh b/scripts/git-gethistory.sh
new file mode 100755
index 0000000..2f19372
--- /dev/null
+++ b/scripts/git-gethistory.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# Graft the development history imported from BitKeeper to the current Git
+# history tree.
+#
+# Note that this will download about 160M.
+
+httpget="curl -O -C -"
+if [ -z "`which curl 2>/dev/null`" ]; then
+	httpget="wget -c"
+	if [ -z "`which wget 2>/dev/null`" ]; then
+		echo "Error: You need to have wget or curl installed so that I can fetch the history." >&2
+		exit 1
+	fi
+fi
+
+[ "$GIT_DIR" ] || GIT_DIR=.git
+if ! [ -d "$GIT_DIR" ]; then
+	echo "Error: You must run this from the project root (or set GIT_DIR to your .git directory)." >&2
+	exit 1
+fi
+cd "$GIT_DIR"
+export GIT_DIR="$(pwd)"
+
+echo "[git-gethistory] Downloading the history"
+mkdir -p objects/pack
+cd objects/pack
+$httpget http://www.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/objects/pack/pack-4d27038611fe7755938efd4a2745d5d5d35de1c1.idx
+$httpget http://www.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/objects/pack/pack-4d27038611fe7755938efd4a2745d5d5d35de1c1.pack
+
+echo "[git-gethistory] Setting up the grafts"
+cd "$GIT_DIR"
+mkdir -p info
+# master
+echo 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a >>info/grafts
+
+echo "[git-gethistory] Setting up tag refs"
+cd "$GIT_DIR"
+git-ls-remote http://www.kernel.org/pub/scm/linux/kernel/git/tglx/history.git | \
+	grep refs/tags | grep -v '\^{}$' | \
+	while read obj ref; do
+		git-update-ref "$ref" "$obj"
+	done
+
+echo "[git-gethistory] Refreshing the dumb server info wrt. new packs"
+cd "$GIT_DIR"
+git-update-server-info

             reply	other threads:[~2006-09-24 17:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-24 17:57 Petr Baudis [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-06-17 21:26 Petr Baudis
2006-06-08  1:33 Petr Baudis
2006-07-05  8:50 ` Marcel Holtmann
2006-05-05 21:34 Petr Baudis

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=20060924175542.13734.79434.stgit@machine.or.cz \
    --to=pasky@suse.cz \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /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

all inboxes | Powered by JetHome®