git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 1/3] Add pack-refs and show-ref test cases.
@ 2006-09-28  4:58 Christian Couder
  2007-03-24  5:30 ` [PATCH 2/3] When creating branch c/d check that branch c does not already exists Christian Couder
  0 siblings, 1 reply; 4+ messages in thread
From: Christian Couder @ 2006-09-28  4:58 UTC (permalink / raw
  To: Junio Hamano; +Cc: git

Some of these test cases are from Junio.
One test case is commented out because it doesn't work right now.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 t/t3210-pack-refs.sh |   70 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh
new file mode 100755
index 0000000..2cc03e6
--- /dev/null
+++ b/t/t3210-pack-refs.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# Copyright (c) 2005 Amos Waterland
+# Copyright (c) 2006 Christian Couder
+#
+
+test_description='git pack-refs should not change the branch semantic
+
+This test runs git pack-refs and git show-ref and checks that the branch
+semantic is still the same.
+'
+. ./test-lib.sh
+
+test_expect_success \
+    'prepare a trivial repository' \
+    'echo Hello > A &&
+     git-update-index --add A &&
+     git-commit -m "Initial commit." &&
+     HEAD=$(git-rev-parse --verify HEAD)'
+
+SHA1=
+
+test_expect_success \
+    'see if git show-ref works as expected' \
+    'git-branch a &&
+     SHA1=$(< .git/refs/heads/a) &&
+     echo "$SHA1 refs/heads/a" >expect &&
+     git-show-ref a >result &&
+     diff expect result'
+
+test_expect_success \
+    'see if a branch still exists when packed' \
+    'git-branch b &&
+     git-pack-refs &&
+     rm .git/refs/heads/b &&
+     echo "$SHA1 refs/heads/b" >expect &&
+     git-show-ref b >result &&
+     diff expect result'
+
+# test_expect_failure \
+#     'git branch c/d should barf if branch c exists' \
+#     'git-branch c &&
+#      git-pack-refs &&
+#      rm .git/refs/heads/c &&
+#      git-branch c/d'
+
+test_expect_success \
+    'see if a branch still exists after git pack-refs --prune' \
+    'git-branch e &&
+     git-pack-refs --prune &&
+     echo "$SHA1 refs/heads/e" >expect &&
+     git-show-ref e >result &&
+     diff expect result'
+
+test_expect_failure \
+    'see if git pack-refs --prune remove ref files' \
+    'git-branch f &&
+     git-pack-refs --prune &&
+     ls .git/refs/heads/f'
+
+test_expect_success \
+    'git branch g should work when git branch g/h has been deleted' \
+    'git-branch g/h &&
+     git-pack-refs --prune &&
+     git-branch -d g/h &&
+     git-branch g &&
+     git-pack-refs &&
+     git-branch -d g'
+
+test_done
-- 
1.4.2.1.g4f95-dirty

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

* [PATCH 2/3] When creating branch c/d check that branch c does not already exists.
@ 2006-09-28  5:00 Christian Couder
  0 siblings, 0 replies; 4+ messages in thread
From: Christian Couder @ 2006-09-28  5:00 UTC (permalink / raw
  To: Junio Hamano; +Cc: git

With packed refs, there may not be a ".git/refs/heads/c" file
when branch c exists. And currently in this case, there is no check
to prevent creation of branch c/d.

This should probably be rewritten in C and done after the ref lock
has been taken to make sure no race exists though.

This is mainly to make all test cases in "t3210-pack-refs.sh" work.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 git-branch.sh |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/git-branch.sh b/git-branch.sh
index 4826c75..4a1e7d9 100755
--- a/git-branch.sh
+++ b/git-branch.sh
@@ -122,6 +122,16 @@ then
 	done
 fi
 
+branchdir=$(dirname $branchname)
+while test "$branchdir" != "."
+do
+	if git-show-ref --verify --quiet -- "refs/heads/$branchdir"
+	then
+		die "$branchdir already exists."
+	fi
+	branchdir=$(dirname $branchdir)
+done
+
 if git-show-ref --verify --quiet -- "refs/heads/$branchname"
 then
 	if test '' = "$force"
-- 
1.4.2.1.g3bab

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

* [PATCH 2/3] When creating branch c/d check that branch c does not already exists.
  2006-09-28  4:58 [PATCH 1/3] Add pack-refs and show-ref test cases Christian Couder
@ 2007-03-24  5:30 ` Christian Couder
  2007-03-24  5:34   ` Christian Couder
  0 siblings, 1 reply; 4+ messages in thread
From: Christian Couder @ 2007-03-24  5:30 UTC (permalink / raw
  To: Junio Hamano; +Cc: git

With packed refs, there may not be a ".git/refs/heads/c" file
when branch c exists. And currently in this case, there is no check
to prevent creation of branch c/d.

This should probably be rewritten in C and done after the ref lock
has been taken to make sure no race exists though.

This is mainly to make all test cases in "t3210-pack-refs.sh" work.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 git-branch.sh |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/git-branch.sh b/git-branch.sh
index 4826c75..4a1e7d9 100755
--- a/git-branch.sh
+++ b/git-branch.sh
@@ -122,6 +122,16 @@ then
 	done
 fi
 
+branchdir=$(dirname $branchname)
+while test "$branchdir" != "."
+do
+	if git-show-ref --verify --quiet -- "refs/heads/$branchdir"
+	then
+		die "$branchdir already exists."
+	fi
+	branchdir=$(dirname $branchdir)
+done
+
 if git-show-ref --verify --quiet -- "refs/heads/$branchname"
 then
 	if test '' = "$force"
-- 
1.4.2.1.g3bab

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

* Re: [PATCH 2/3] When creating branch c/d check that branch c does not already exists.
  2007-03-24  5:30 ` [PATCH 2/3] When creating branch c/d check that branch c does not already exists Christian Couder
@ 2007-03-24  5:34   ` Christian Couder
  0 siblings, 0 replies; 4+ messages in thread
From: Christian Couder @ 2007-03-24  5:34 UTC (permalink / raw
  To: Junio Hamano; +Cc: git

Oops, sorry this is an old mail that was in my Draft folder and should not 
have been sent...

Christian.

Le samedi 24 mars 2007 06:30, Christian Couder a écrit :
> With packed refs, there may not be a ".git/refs/heads/c" file
> when branch c exists. And currently in this case, there is no check
> to prevent creation of branch c/d.
>
> This should probably be rewritten in C and done after the ref lock
> has been taken to make sure no race exists though.
>
> This is mainly to make all test cases in "t3210-pack-refs.sh" work.
>
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
> ---
>  git-branch.sh |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/git-branch.sh b/git-branch.sh
> index 4826c75..4a1e7d9 100755
> --- a/git-branch.sh
> +++ b/git-branch.sh
> @@ -122,6 +122,16 @@ then
>  	done
>  fi
>
> +branchdir=$(dirname $branchname)
> +while test "$branchdir" != "."
> +do
> +	if git-show-ref --verify --quiet -- "refs/heads/$branchdir"
> +	then
> +		die "$branchdir already exists."
> +	fi
> +	branchdir=$(dirname $branchdir)
> +done
> +
>  if git-show-ref --verify --quiet -- "refs/heads/$branchname"
>  then
>  	if test '' = "$force"

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

end of thread, other threads:[~2007-03-24  5:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-28  4:58 [PATCH 1/3] Add pack-refs and show-ref test cases Christian Couder
2007-03-24  5:30 ` [PATCH 2/3] When creating branch c/d check that branch c does not already exists Christian Couder
2007-03-24  5:34   ` Christian Couder
  -- strict thread matches above, loose matches on Subject: below --
2006-09-28  5:00 Christian Couder

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).