Git development
 help / color / mirror / Atom feed
* [PATCH v6 p1.1 00/14] fast-export and remote-testgit improvements
@ 2012-11-24  3:17 Felipe Contreras
  2012-11-24  3:17 ` [PATCH v6 p1.1 01/14] fast-export: avoid importing blob marks Felipe Contreras
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: Felipe Contreras @ 2012-11-24  3:17 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jeff King, Johannes Sixt, Johannes Schindelin,
	Max Horn, Sverre Rabbelier, Brandon Casey, Brandon Casey,
	Jonathan Nieder, Ilari Liusvaara, Pete Wyckoff, Ben Walton,
	Matthieu Moy, Julian Phillips, Felipe Contreras

Hi,

I'm rerolling this series with the changes fron Junio, plus a bit more cleanups.

I dropped the last patch, because I found an issue and a separate patch series
would take care of that. Other than that the main changes remain the same.

The old remote-testgit is now remote-testpy (as it's testing the python
framework, not really remote helpers). The tests are simplified, and exercise
more features of transport-helper, and unsuprisingly, find more bugs.

Cheers.

Interdiff:

diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 60e8f3b..31bfbee 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -529,9 +529,7 @@ static void get_tags_and_duplicates(struct object_array *pending,
 		 * sure it gets properly updated eventually.
 		 */
 		if (commit->util || commit->object.flags & SHOWN)
-			if (!(commit->object.flags & UNINTERESTING))
-				string_list_append(extra_refs, full_name)->util = commit;
-
+			string_list_append(extra_refs, full_name)->util = commit;
 		if (!commit->util)
 			commit->util = full_name;
 	}
@@ -620,7 +618,7 @@ static void import_marks(char *input_file)
 		if (object->flags & SHOWN)
 			error("Object %s already has a mark", sha1_to_hex(sha1));
 
-		if (object->type != 1)
+		if (object->type != OBJ_COMMIT)
 			/* only commits */
 			continue;
 
diff --git a/git-remote-testgit b/git-remote-testgit
index 4a00387..0389545 100755
--- a/git-remote-testgit
+++ b/git-remote-testgit
@@ -11,9 +11,6 @@ default_refspec="refs/heads/*:${prefix}/heads/*"
 
 refspec="${GIT_REMOTE_TESTGIT_REFSPEC-$default_refspec}"
 
-gitmarks="$dir/git.marks"
-testgitmarks="$dir/testgit.marks"
-
 test -z "$refspec" && prefix="refs"
 
 export GIT_DIR="$url/.git"
@@ -22,11 +19,11 @@ mkdir -p "$dir"
 
 if test -z "$GIT_REMOTE_TESTGIT_NO_MARKS"
 then
+	gitmarks="$dir/git.marks"
+	testgitmarks="$dir/testgit.marks"
 	test -e "$gitmarks" || >"$gitmarks"
 	test -e "$testgitmarks" || >"$testgitmarks"
-else
-	>"$gitmarks"
-	>"$testgitmarks"
+	testgitmarks_args=( "--"{import,export}"-marks=$testgitmarks" )
 fi
 
 while read line
@@ -36,8 +33,11 @@ do
 		echo 'import'
 		echo 'export'
 		test -n "$refspec" && echo "refspec $refspec"
-		echo "*import-marks $gitmarks"
-		echo "*export-marks $gitmarks"
+		if test -n "$gitmarks"
+		then
+			echo "*import-marks $gitmarks"
+			echo "*export-marks $gitmarks"
+		fi
 		echo
 		;;
 	list)
@@ -56,17 +56,20 @@ do
 			test "${line%% *}" != "import" && break
 		done
 
-		echo "feature import-marks=$gitmarks"
-		echo "feature export-marks=$gitmarks"
+		if test -n "$gitmarks"
+		then
+			echo "feature import-marks=$gitmarks"
+			echo "feature export-marks=$gitmarks"
+		fi
 		echo "feature done"
-		git fast-export --{import,export}-marks="$testgitmarks" $refs |
+		git fast-export "${testgitmarks_args[@]}" $refs |
 		sed -e "s#refs/heads/#${prefix}/heads/#g"
 		echo "done"
 		;;
 	export)
 		before=$(git for-each-ref --format='%(refname) %(objectname)')
 
-		git fast-import --{import,export}-marks="$testgitmarks" --quiet
+		git fast-import "${testgitmarks_args[@]}" --quiet
 
 		after=$(git for-each-ref --format='%(refname) %(objectname)')
 
diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
index b6cc5c0..b2782a2 100755
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -112,37 +112,40 @@ test_expect_success 'pulling without refspecs' '
 '
 
 test_expect_failure 'pushing without refspecs' '
+	test_when_finished "(cd local2 && git reset --hard origin)" &&
 	(cd local2 &&
 	echo content >>file &&
-	git commit -a -m three &&
+	git commit -a -m ten &&
 	GIT_REMOTE_TESTGIT_REFSPEC="" git push) &&
 	compare_refs local2 HEAD server HEAD
 '
 
-test_expect_failure 'pulling with straight refspec' '
+test_expect_success 'pulling with straight refspec' '
 	(cd local2 &&
 	GIT_REMOTE_TESTGIT_REFSPEC="*:*" git pull) &&
 	compare_refs local2 HEAD server HEAD
 '
 
 test_expect_failure 'pushing with straight refspec' '
+	test_when_finished "(cd local2 && git reset --hard origin)" &&
 	(cd local2 &&
 	echo content >>file &&
-	git commit -a -m three &&
+	git commit -a -m eleven &&
 	GIT_REMOTE_TESTGIT_REFSPEC="*:*" git push) &&
 	compare_refs local2 HEAD server HEAD
 '
 
-test_expect_failure 'pulling without marks' '
+test_expect_success 'pulling without marks' '
 	(cd local2 &&
 	GIT_REMOTE_TESTGIT_NO_MARKS=1 git pull) &&
 	compare_refs local2 HEAD server HEAD
 '
 
 test_expect_failure 'pushing without marks' '
+	test_when_finished "(cd local2 && git reset --hard origin)" &&
 	(cd local2 &&
 	echo content >>file &&
-	git commit -a -m three &&
+	git commit -a -m twelve &&
 	GIT_REMOTE_TESTGIT_NO_MARKS=1 git push) &&
 	compare_refs local2 HEAD server HEAD
 '
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index 15357a1..237d2e5 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -461,7 +461,7 @@ from :12
 EOF
 
 test_expect_success 'refs are updated even if no commits need to be exported' '
-	echo -n > tmp-marks &&
+	> tmp-marks &&
 	git fast-export --import-marks=tmp-marks \
 		--export-marks=tmp-marks master > /dev/null &&
 	git fast-export --import-marks=tmp-marks \
@@ -469,10 +469,4 @@ test_expect_success 'refs are updated even if no commits need to be exported' '
 	test_cmp expected actual
 '
 
-test_expect_success 'proper extra refs handling' '
-	git fast-export master ^master master..master > actual &&
-	echo -n > expected &&
-	test_cmp expected actual
-'
-
 test_done

 .gitignore                           |   2 +-
 Documentation/git-remote-testgit.txt |   2 +-
 Makefile                             |   2 +-
 builtin/fast-export.c                |  16 ++-
 git-remote-testgit                   |  90 ++++++++++++
 git-remote-testgit.py                | 272 -----------------------------------
 git-remote-testpy.py                 | 272 +++++++++++++++++++++++++++++++++++
 git_remote_helpers/git/importer.py   |   2 +-
 t/t5800-remote-helpers.sh            | 148 -------------------
 t/t5800-remote-testpy.sh             | 148 +++++++++++++++++++
 t/t5801-remote-helpers.sh            | 161 +++++++++++++++++++++
 t/t9350-fast-export.sh               |  35 ++++-
 12 files changed, 719 insertions(+), 431 deletions(-)
 create mode 100755 git-remote-testgit
 delete mode 100644 git-remote-testgit.py
 create mode 100644 git-remote-testpy.py
 delete mode 100755 t/t5800-remote-helpers.sh
 create mode 100755 t/t5800-remote-testpy.sh
 create mode 100755 t/t5801-remote-helpers.sh

-- 
1.8.0

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2012-11-26 23:52 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-24  3:17 [PATCH v6 p1.1 00/14] fast-export and remote-testgit improvements Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 01/14] fast-export: avoid importing blob marks Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 02/14] remote-testgit: fix direction of marks Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 03/14] remote-helpers: fix failure message Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 04/14] Rename git-remote-testgit to git-remote-testpy Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 05/14] Add new simplified git-remote-testgit Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 06/14] remote-testgit: remove non-local functionality Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 07/14] remote-testgit: remove irrelevant test Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 08/14] remote-testgit: cleanup tests Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 09/14] remote-testgit: exercise more features Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 10/14] remote-testgit: report success after an import Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 11/14] remote-testgit: implement the "done" feature manually Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 12/14] fast-export: trivial cleanup Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 13/14] fast-export: fix comparison in tests Felipe Contreras
2012-11-24  3:17 ` [PATCH v6 p1.1 14/14] fast-export: make sure updated refs get updated Felipe Contreras
2012-11-26 23:04 ` [PATCH v6 p1.1 00/14] fast-export and remote-testgit improvements Junio C Hamano
2012-11-26 23:23   ` Felipe Contreras
2012-11-26 23:52     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox