From: Sverre Rabbelier <srabbelier@gmail.com>
To: Git List <git@vger.kernel.org>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Daniel Barkalow <barkalow@iabervon.org>,
Johan Herland <johan@herland.net>
Cc: Johan Herland <johan@herland.net>
Subject: [PATCH 15/19] Add simple selftests of git-remote-cvs functionality
Date: Thu, 29 Oct 2009 11:01:23 -0700 [thread overview]
Message-ID: <1256839287-19016-16-git-send-email-srabbelier@gmail.com> (raw)
In-Reply-To: <1256839287-19016-1-git-send-email-srabbelier@gmail.com>
From: Johan Herland <johan@herland.net>
Add two new selftests:
- t9800-remote-cvs-basic: Test the git-remote-cvs implementation of the
remote helper API, by verifying the expected output of the git-remote-cvs
program when invoking remote helper API commands while doing some simple
CVS operations.
- t9801-remote-cvs-fetch: A more high-level test of the fetch/import-side
of the git-remote-cvs implementation, by verifying the expected repository
state after doing "git fetch" from a CVS remote where a variety of CVS
operations are being performed.
Signed-off-by: Johan Herland <johan@herland.net>
---
Unchanged.
t/t9800-remote-cvs-basic.sh | 524 +++++++++++++++++++++++++++++++++++++++++++
t/t9801-remote-cvs-fetch.sh | 291 ++++++++++++++++++++++++
2 files changed, 815 insertions(+), 0 deletions(-)
create mode 100755 t/t9800-remote-cvs-basic.sh
create mode 100755 t/t9801-remote-cvs-fetch.sh
diff --git a/t/t9800-remote-cvs-basic.sh b/t/t9800-remote-cvs-basic.sh
new file mode 100755
index 0000000..6ddec17
--- /dev/null
+++ b/t/t9800-remote-cvs-basic.sh
@@ -0,0 +1,524 @@
+#!/bin/sh
+
+test_description='git remote-cvs basic tests'
+. ./test-lib.sh
+
+if ! test_have_prereq PYTHON; then
+ say 'skipping CVS foreign-vcs helper tests, python not available'
+ test_done
+fi
+
+CVS_EXEC=cvs
+CVS_OPTS="-f -q"
+CVS="$CVS_EXEC $CVS_OPTS"
+
+CVSROOT=$(pwd)/cvsroot
+export CVSROOT
+unset CVS_SERVER
+
+CVSMODULE=cvsmodule
+GITREMOTE=cvsremote
+
+if ! type $CVS_EXEC >/dev/null 2>&1
+then
+ say 'skipping remote-cvs tests, $CVS_EXEC not found'
+ test_done
+fi
+
+test_expect_success 'setup cvsroot' '$CVS init'
+
+test_expect_success '#1: setup a cvs module' '
+
+ mkdir "$CVSROOT/$CVSMODULE" &&
+ $CVS co -d module-cvs $CVSMODULE &&
+ (
+ cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+O Fortuna
+velut luna
+statu variabilis,
+
+semper crescis
+aut decrescis;
+vita detestabilis
+
+nunc obdurat
+et tunc curat
+ludo mentis aciem,
+
+egestatem,
+potestatem
+dissolvit ut glaciem.
+EOF
+ $CVS add o_fortuna &&
+ cat <<EOF >message &&
+add "O Fortuna" lyrics
+
+These public domain lyrics make an excellent sample text.
+EOF
+ $CVS commit -f -F message o_fortuna
+ )
+'
+
+test_expect_success 'set up CVS repo as a foreign remote' '
+
+ git config "user.name" "Test User"
+ git config "user.email" "test@example.com"
+ git config "remote.$GITREMOTE.vcs" cvs
+ git config "remote.$GITREMOTE.cvsRoot" "$CVSROOT"
+ git config "remote.$GITREMOTE.cvsModule" "$CVSMODULE"
+ git config "remote.$GITREMOTE.fetch" \
+ "+refs/cvs/$GITREMOTE/*:refs/remotes/$GITREMOTE/*"
+
+'
+
+test_expect_success '#1: git-remote-cvs "capabilities" command' '
+
+ echo "capabilities" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+import
+marks .git/info/cvs/$GITREMOTE/marks
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#1: git-remote-cvs "list" command' '
+
+ echo "list" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+? refs/cvs/$GITREMOTE/HEAD
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#1: git-remote-cvs "import" command' '
+
+ echo "import refs/cvs/$GITREMOTE/HEAD" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+# Importing CVS revision o_fortuna:1.1
+blob
+mark :1
+data 180
+O Fortuna
+velut luna
+statu variabilis,
+
+semper crescis
+aut decrescis;
+vita detestabilis
+
+nunc obdurat
+et tunc curat
+ludo mentis aciem,
+
+egestatem,
+potestatem
+dissolvit ut glaciem.
+
+commit refs/cvs/$GITREMOTE/HEAD
+mark :2
+data 82
+add "O Fortuna" lyrics
+
+These public domain lyrics make an excellent sample text.
+
+M 644 :1 o_fortuna
+
+# Importing note for object 2
+blob
+mark :3
+data 14
+o_fortuna:1.1
+
+commit refs/notes/cvs/$GITREMOTE
+mark :4
+data 46
+Annotate commits imported by "git remote-cvs"
+
+N :3 :2
+
+blob
+mark :5
+data 32
+1 o_fortuna:1.1
+2 o_fortuna:1.1
+
+blob
+mark :6
+data 16
+blob 1
+commit 2
+
+commit refs/cvs/$GITREMOTE/_metadata
+mark :7
+data 42
+Updated metadata used by "git remote-cvs"
+
+M 644 :5 CVS/marks
+M 644 :6 o_fortuna/1.1
+
+EOF
+ grep -v "^committer " actual > actual.filtered &&
+ test_cmp expect actual.filtered
+
+'
+
+test_expect_success '#1: Passing git-remote-cvs output to git-fast-import' '
+
+ git fast-import --quiet \
+ --export-marks=".git/info/cvs/$GITREMOTE/marks" \
+ < actual &&
+ git gc
+
+'
+
+test_expect_success '#1: Verifying correctness of import' '
+
+ echo "verify HEAD" | git remote-cvs "$GITREMOTE"
+
+'
+
+test_expect_success '#2: update cvs module' '
+
+ (
+ cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+O Fortune,
+like the moon
+you are changeable,
+
+ever waxing
+and waning;
+hateful life
+
+first oppresses
+and then soothes
+as fancy takes it;
+
+poverty
+and power
+it melts them like ice.
+EOF
+ cat <<EOF >message &&
+translate to English
+
+My Latin is terrible.
+EOF
+ $CVS commit -f -F message o_fortuna
+ )
+'
+
+test_expect_success '#2: git-remote-cvs "capabilities" command' '
+
+ echo "capabilities" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+import
+marks .git/info/cvs/$GITREMOTE/marks
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#2: git-remote-cvs "list" command' '
+
+ echo "list" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+? refs/cvs/$GITREMOTE/HEAD
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#2: git-remote-cvs "import" command' '
+
+ echo "import refs/cvs/$GITREMOTE/HEAD" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+# Importing CVS revision o_fortuna:1.2
+blob
+mark :8
+data 179
+O Fortune,
+like the moon
+you are changeable,
+
+ever waxing
+and waning;
+hateful life
+
+first oppresses
+and then soothes
+as fancy takes it;
+
+poverty
+and power
+it melts them like ice.
+
+commit refs/cvs/$GITREMOTE/HEAD
+mark :9
+data 44
+translate to English
+
+My Latin is terrible.
+
+from refs/cvs/$GITREMOTE/HEAD^0
+M 644 :8 o_fortuna
+
+# Importing note for object 9
+blob
+mark :10
+data 14
+o_fortuna:1.2
+
+commit refs/notes/cvs/$GITREMOTE
+mark :11
+data 46
+Annotate commits imported by "git remote-cvs"
+
+from refs/notes/cvs/$GITREMOTE^0
+N :10 :9
+
+blob
+mark :12
+data 32
+8 o_fortuna:1.2
+9 o_fortuna:1.2
+
+blob
+mark :13
+data 94
+
+blob
+mark :14
+data 16
+blob 8
+commit 9
+
+commit refs/cvs/$GITREMOTE/_metadata
+mark :15
+data 42
+Updated metadata used by "git remote-cvs"
+
+from refs/cvs/$GITREMOTE/_metadata^0
+M 644 :12 CVS/marks
+M 644 :13 o_fortuna/1.1
+M 644 :14 o_fortuna/1.2
+
+EOF
+ grep -v -e "^committer " -e "\b[0-9a-f]\{40\}\b" actual > actual.filtered &&
+ test_cmp expect actual.filtered
+
+'
+
+test_expect_success '#2: Passing git-remote-cvs output to git-fast-import' '
+
+ git fast-import --quiet \
+ --import-marks=".git/info/cvs/$GITREMOTE/marks" \
+ --export-marks=".git/info/cvs/$GITREMOTE/marks" \
+ < actual &&
+ git gc
+
+'
+
+test_expect_success '#2: Verifying correctness of import' '
+
+ echo "verify HEAD" | git remote-cvs "$GITREMOTE"
+
+'
+
+test_expect_success '#3: update cvs module' '
+
+ (
+ cd module-cvs &&
+ echo 1 >tick &&
+ $CVS add tick &&
+ $CVS commit -f -m 1 tick
+ )
+
+'
+
+test_expect_success '#3: git-remote-cvs "capabilities" command' '
+
+ echo "capabilities" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+import
+marks .git/info/cvs/$GITREMOTE/marks
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#3: git-remote-cvs "list" command' '
+
+ echo "list" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+? refs/cvs/$GITREMOTE/HEAD
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#3: git-remote-cvs "import" command' '
+
+ echo "import refs/cvs/$GITREMOTE/HEAD" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+# Importing CVS revision tick:1.1
+blob
+mark :16
+data 2
+1
+
+commit refs/cvs/$GITREMOTE/HEAD
+mark :17
+data 2
+1
+
+from refs/cvs/$GITREMOTE/HEAD^0
+M 644 :16 tick
+
+# Importing note for object 17
+blob
+mark :18
+data 23
+o_fortuna:1.2
+tick:1.1
+
+commit refs/notes/cvs/$GITREMOTE
+mark :19
+data 46
+Annotate commits imported by "git remote-cvs"
+
+from refs/notes/cvs/$GITREMOTE^0
+N :18 :17
+
+blob
+mark :20
+data 41
+16 tick:1.1
+17 tick:1.1
+17 o_fortuna:1.2
+
+blob
+mark :21
+data 104
+commit 17
+
+blob
+mark :22
+data 18
+blob 16
+commit 17
+
+commit refs/cvs/$GITREMOTE/_metadata
+mark :23
+data 42
+Updated metadata used by "git remote-cvs"
+
+from refs/cvs/$GITREMOTE/_metadata^0
+M 644 :20 CVS/marks
+M 644 :21 o_fortuna/1.2
+M 644 :22 tick/1.1
+
+EOF
+ grep -v -e "^committer " -e "\b[0-9a-f]\{40\}\b" actual > actual.filtered &&
+ test_cmp expect actual.filtered
+
+'
+
+test_expect_success '#3: Passing git-remote-cvs output to git-fast-import' '
+
+ git fast-import --quiet \
+ --import-marks=".git/info/cvs/$GITREMOTE/marks" \
+ --export-marks=".git/info/cvs/$GITREMOTE/marks" \
+ < actual &&
+ git gc
+
+'
+
+test_expect_success '#3: Verifying correctness of import' '
+
+ echo "verify HEAD" | git remote-cvs "$GITREMOTE"
+
+'
+
+test_expect_success '#4: git-remote-cvs "capabilities" command' '
+
+ echo "capabilities" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+import
+marks .git/info/cvs/$GITREMOTE/marks
+
+EOF
+ test_cmp expect actual
+
+'
+
+commit=$(git rev-parse "refs/cvs/$GITREMOTE/HEAD")
+
+test_expect_success '#4: git-remote-cvs "list" command' '
+
+ echo "list" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+$commit refs/cvs/$GITREMOTE/HEAD unchanged
+
+EOF
+ test_cmp expect actual
+
+'
+
+test_expect_success '#4: git-remote-cvs "import" command' '
+
+ echo "import refs/cvs/$GITREMOTE/HEAD" | git remote-cvs "$GITREMOTE" > actual &&
+ cat <<EOF >expect &&
+blob
+mark :24
+data 0
+
+blob
+mark :25
+data 142
+
+blob
+mark :26
+data 94
+
+commit refs/cvs/$GITREMOTE/_metadata
+mark :27
+data 42
+Updated metadata used by "git remote-cvs"
+
+from refs/cvs/$GITREMOTE/_metadata^0
+M 644 :24 CVS/marks
+M 644 :25 o_fortuna/1.2
+M 644 :26 tick/1.1
+
+EOF
+ grep -v -e "^committer " -e "\b[0-9a-f]\{40\}\b" actual > actual.filtered &&
+ test_cmp expect actual.filtered
+
+'
+
+test_expect_success '#4: Passing git-remote-cvs output to git-fast-import' '
+
+ git fast-import --quiet \
+ --import-marks=".git/info/cvs/$GITREMOTE/marks" \
+ --export-marks=".git/info/cvs/$GITREMOTE/marks" \
+ < actual &&
+ git gc
+
+'
+
+test_expect_success '#4: Verifying correctness of import' '
+
+ echo "verify HEAD" | git remote-cvs "$GITREMOTE"
+
+'
+
+test_done
diff --git a/t/t9801-remote-cvs-fetch.sh b/t/t9801-remote-cvs-fetch.sh
new file mode 100755
index 0000000..93d44a7
--- /dev/null
+++ b/t/t9801-remote-cvs-fetch.sh
@@ -0,0 +1,291 @@
+#!/bin/sh
+
+test_description='git remote-cvs basic tests'
+. ./test-lib.sh
+
+if ! test_have_prereq PYTHON; then
+ say 'skipping CVS foreign-vcs helper tests, python not available'
+ test_done
+fi
+
+CVS_EXEC=cvs
+CVS_OPTS="-f -q"
+CVS="$CVS_EXEC $CVS_OPTS"
+
+CVSROOT=$(pwd)/cvsroot
+export CVSROOT
+unset CVS_SERVER
+
+CVSMODULE=cvsmodule
+GITREMOTE=cvsremote
+
+if ! type $CVS_EXEC >/dev/null 2>&1
+then
+ say 'skipping remote-cvs tests, $CVS_EXEC not found'
+ test_done
+fi
+
+verify () {
+ git log --reverse --format="--- %T%n%s%n%n%b" "$GITREMOTE/$1" >actual &&
+ test_cmp "expect.$1" actual &&
+ echo "verify $1" | git remote-cvs "$GITREMOTE"
+}
+
+test_expect_success 'setup CVS repo' '$CVS init'
+
+test_expect_success 'create CVS module with initial commit' '
+
+ mkdir "$CVSROOT/$CVSMODULE" &&
+ $CVS co -d module-cvs $CVSMODULE &&
+ (
+ cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+O Fortuna
+velut luna
+statu variabilis,
+
+semper crescis
+aut decrescis;
+vita detestabilis
+
+nunc obdurat
+et tunc curat
+ludo mentis aciem,
+
+egestatem,
+potestatem
+dissolvit ut glaciem.
+EOF
+ $CVS add o_fortuna &&
+ cat <<EOF >message &&
+add "O Fortuna" lyrics
+
+These public domain lyrics make an excellent sample text.
+EOF
+ $CVS commit -f -F message o_fortuna
+ )
+'
+
+test_expect_success 'set up CVS repo/module as a foreign remote' '
+
+ git config "user.name" "Test User"
+ git config "user.email" "test@example.com"
+ git config "remote.$GITREMOTE.vcs" cvs
+ git config "remote.$GITREMOTE.cvsRoot" "$CVSROOT"
+ git config "remote.$GITREMOTE.cvsModule" "$CVSMODULE"
+ git config "remote.$GITREMOTE.fetch" \
+ "+refs/cvs/$GITREMOTE/*:refs/remotes/$GITREMOTE/*"
+
+'
+
+test_expect_success 'initial fetch from CVS remote' '
+
+ cat <<EOF >expect.HEAD &&
+--- 0e06d780dedab23e683c686fb041daa9a84c936c
+add "O Fortuna" lyrics
+
+These public domain lyrics make an excellent sample text.
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'CVS commit' '
+
+ (
+ cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+O Fortune,
+like the moon
+you are changeable,
+
+ever waxing
+and waning;
+hateful life
+
+first oppresses
+and then soothes
+as fancy takes it;
+
+poverty
+and power
+it melts them like ice.
+EOF
+ cat <<EOF >message &&
+translate to English
+
+My Latin is terrible.
+EOF
+ $CVS commit -f -F message o_fortuna
+ ) &&
+ cat <<EOF >>expect.HEAD &&
+--- daa87269a5e00388135ad9542dc16ab6754466e5
+translate to English
+
+My Latin is terrible.
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'CVS commit with new file' '
+
+ (
+ cd module-cvs &&
+ echo 1 >tick &&
+ $CVS add tick &&
+ $CVS commit -f -m 1 tick
+ ) &&
+ cat <<EOF >>expect.HEAD &&
+--- 486935b4fccecea9b64cbed3a797ebbcbe2b7461
+1
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'fetch without CVS changes' '
+
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'add 2 CVS commits' '
+
+ (
+ cd module-cvs &&
+ echo 2 >tick &&
+ $CVS commit -f -m 2 tick &&
+ echo 3 >tick &&
+ $CVS commit -f -m 3 tick
+ ) &&
+ cat <<EOF >>expect.HEAD &&
+--- 83437ab3e57bf0a42915de5310e3419792b5a36f
+2
+
+
+--- 60fc50406a82dc6bd32dc6e5f7bd23e4c3cdf7ef
+3
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'CVS commit with removed file' '
+
+ (
+ cd module-cvs &&
+ $CVS remove -f tick &&
+ $CVS commit -f -m "remove file" tick
+ ) &&
+ cat <<EOF >>expect.HEAD &&
+--- daa87269a5e00388135ad9542dc16ab6754466e5
+remove file
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'CVS commit with several new files' '
+
+ (
+ cd module-cvs &&
+ echo spam >spam &&
+ echo sausage >sausage &&
+ echo eggs >eggs &&
+ $CVS add spam sausage eggs &&
+ $CVS commit -f -m "spam, sausage, and eggs" spam sausage eggs
+ ) &&
+ cat <<EOF >>expect.HEAD &&
+--- 3190dfce44a6d5e9916b4870dbf8f37d1ca4ddaf
+spam, sausage, and eggs
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD
+
+'
+
+test_expect_success 'new CVS branch' '
+
+ (
+ cd module-cvs &&
+ $CVS tag -b foo
+ ) &&
+ cp expect.HEAD expect.foo &&
+ git fetch "$GITREMOTE" &&
+ verify HEAD &&
+ verify foo
+
+'
+
+test_expect_success 'CVS commit on branch' '
+
+ (
+ cd module-cvs &&
+ $CVS up -r foo &&
+ echo "spam spam spam" >spam &&
+ $CVS commit -f -m "commit on branch foo" spam
+ ) &&
+ cat <<EOF >>expect.foo &&
+--- 1aba123e5c83898ce3a8b976cc6064d60246aef4
+commit on branch foo
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD &&
+ verify foo
+
+'
+
+test_expect_success 'create CVS tag' '
+
+ (
+ cd module-cvs &&
+ $CVS tag bar
+ ) &&
+ cp expect.foo expect.bar &&
+ git fetch "$GITREMOTE" &&
+ verify HEAD &&
+ verify foo &&
+ verify bar
+
+'
+
+test_expect_success 'another CVS commit on branch' '
+
+ (
+ cd module-cvs &&
+ echo "spam spam spam spam spam spam" >> spam &&
+ $CVS commit -f -m "another commit on branch foo" spam
+ ) &&
+ cat <<EOF >>expect.foo &&
+--- 15a2635e76e8e5a5a8746021643de317452f2340
+another commit on branch foo
+
+
+EOF
+ git fetch "$GITREMOTE" &&
+ verify HEAD &&
+ verify foo &&
+ verify bar
+
+'
+
+test_done
--
1.6.5.2.291.gf76a3
next prev parent reply other threads:[~2009-10-29 18:03 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-29 18:01 [PATCH 0/19] Reroll of the remote-vcs-helper series Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 01/19] Use a function to determine whether a remote is valid Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 02/19] Allow fetch to modify refs Sverre Rabbelier
2009-10-30 5:56 ` Daniel Barkalow
2009-10-30 12:22 ` Sverre Rabbelier
2009-10-30 15:16 ` Daniel Barkalow
2009-10-30 21:24 ` Sverre Rabbelier
2009-10-29 18:01 ` [UNSTABLE PATCH 03/19] Allow programs to not depend on remotes having urls Sverre Rabbelier
2009-10-30 6:02 ` Daniel Barkalow
2009-10-30 12:24 ` Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 04/19] Add a config option for remotes to specify a foreign vcs Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 05/19] Add support for "import" helper command Sverre Rabbelier
2009-10-29 18:01 ` [RFC PATCH 06/19] Factor ref updating out of fetch_with_import Sverre Rabbelier
2009-10-30 7:10 ` Daniel Barkalow
2009-10-30 12:57 ` Sverre Rabbelier
2009-10-30 16:04 ` Daniel Barkalow
2009-11-02 1:33 ` Sverre Rabbelier
2009-11-02 3:16 ` Daniel Barkalow
2009-11-02 15:12 ` Sverre Rabbelier
2009-11-02 16:36 ` Daniel Barkalow
2009-10-29 18:01 ` [PATCH 07/19] Allow helpers to report in "list" command that the ref is unchanged Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 08/19] Fix memory leak in helper method for disconnect Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 09/19] Finally make remote helper support useful Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 10/19] Allow helpers to request marks for fast-import Sverre Rabbelier
2009-10-30 8:21 ` Johan Herland
2009-10-30 12:26 ` Sverre Rabbelier
2009-10-31 12:04 ` Johan Herland
2009-10-31 16:19 ` Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 11/19] Basic build infrastructure for Python scripts Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 12/19] 1/2: Add Python support library for CVS remote helper Sverre Rabbelier
2009-10-30 8:33 ` Johan Herland
2009-10-30 12:27 ` Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 13/19] 2/2: " Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 14/19] git-remote-cvs: Remote helper program for CVS repositories Sverre Rabbelier
2009-10-29 18:01 ` Sverre Rabbelier [this message]
2009-10-29 18:01 ` [PATCH 16/19] Fix the Makefile-generated path to the git_remote_cvs package in git-remote-cvs Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 17/19] More fixes to the git-remote-cvs installation procedure Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 18/19] Refactor git_remote_cvs to a more generic git_remote_helpers Sverre Rabbelier
2009-10-30 8:42 ` Johan Herland
2009-10-30 12:29 ` Sverre Rabbelier
2009-10-29 18:01 ` [PATCH 19/19] .gitignore: add git-remote-cvs Sverre Rabbelier
2009-10-29 18:05 ` Shawn O. Pearce
2009-10-29 18:08 ` Sverre Rabbelier
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=1256839287-19016-16-git-send-email-srabbelier@gmail.com \
--to=srabbelier@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=johan@herland.net \
/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).