* Test #7 in t9200-git-cvsexportcommit fails
@ 2007-07-22 19:41 Jason Sewall
2007-07-22 20:21 ` Alex Riesen
0 siblings, 1 reply; 21+ messages in thread
From: Jason Sewall @ 2007-07-22 19:41 UTC (permalink / raw)
To: git, Junio C Hamano
This test fails for me on the current head (pulled just now) and where
the test was introduced (e86ad71fe).
All other tests pass.
I know almost nothing about how CVS works internally, so I don't have
any insight as to the cause of this problem - all I can see is that
the contents of CVS/Entries has the 'with spaces' files at 1.1 instead
of the expect 1.2.
I'm happy to provide more information if you can tell me how to get
it. In particular, I'd like to tell you about my version of perl-cvs
(or whatever it's called) but I have no idea how to do that...
Jason
P.S. I don't use this part of git at all, so this is not a priority
for me. I am using Fedora 7, which is definitely a mainstream distro,
so I imagine others might have this problem too.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Test #7 in t9200-git-cvsexportcommit fails
2007-07-22 19:41 Test #7 in t9200-git-cvsexportcommit fails Jason Sewall
@ 2007-07-22 20:21 ` Alex Riesen
2007-07-22 20:49 ` Jason Sewall
0 siblings, 1 reply; 21+ messages in thread
From: Alex Riesen @ 2007-07-22 20:21 UTC (permalink / raw)
To: Jason Sewall; +Cc: git, Junio C Hamano
Jason Sewall, Sun, Jul 22, 2007 21:41:53 +0200:
> This test fails for me on the current head (pulled just now) and where
> the test was introduced (e86ad71fe).
Aahh, the test where CVS failed to commit sub-second changes...
It never really succeeded.
> P.S. I don't use this part of git at all, so this is not a priority
> for me. I am using Fedora 7, which is definitely a mainstream distro,
> so I imagine others might have this problem too.
Just disable it:
$ echo "export GIT_SKIP_TESTS = t9200" >>config.mak
It'll never work, cvs does not commit changes made during one second,
as they have the same timestamp.
If you feel interested, try investigating the test by running it with
"-d -v", like this:
$ cd t
$ ./t9200-git-cvsexportcommit.sh -d -v -i
You'll have to run it multiple times, probably: the problem is
sometimes timing dependent and changed output conditions may make it
go away for a while. Just continue trying.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Test #7 in t9200-git-cvsexportcommit fails
2007-07-22 20:21 ` Alex Riesen
@ 2007-07-22 20:49 ` Jason Sewall
2007-07-22 21:42 ` Alex Riesen
2007-07-22 22:19 ` Junio C Hamano
0 siblings, 2 replies; 21+ messages in thread
From: Jason Sewall @ 2007-07-22 20:49 UTC (permalink / raw)
To: Alex Riesen; +Cc: git, Junio C Hamano
> It'll never work, cvs does not commit changes made during one second,
> as they have the same timestamp.
Why not add a delay in there, like this:
id=$(git rev-list --max-count=1 HEAD) && sleep 2
It makes the test work for me.
Jason
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Test #7 in t9200-git-cvsexportcommit fails
2007-07-22 20:49 ` Jason Sewall
@ 2007-07-22 21:42 ` Alex Riesen
2007-07-22 22:19 ` Junio C Hamano
1 sibling, 0 replies; 21+ messages in thread
From: Alex Riesen @ 2007-07-22 21:42 UTC (permalink / raw)
To: Jason Sewall; +Cc: git, Junio C Hamano
Jason Sewall, Sun, Jul 22, 2007 22:49:19 +0200:
> >It'll never work, cvs does not commit changes made during one second,
> >as they have the same timestamp.
>
> Why not add a delay in there, like this:
>
> id=$(git rev-list --max-count=1 HEAD) && sleep 2
>
> It makes the test work for me.
It looks just like another reason to disable it. It is not like the
_git_ functionality which is used by git-cvsexportcommit is not
already tested elsewhere.
Note that I do _NOT_ suggest disabling it by default, but a bit of
warning would probably do some good:
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 4efa0c9..e5e9e36 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -6,6 +6,12 @@ test_description='CVS export comit. '
. ./test-lib.sh
+echo >&2
+echo >&2 "This test is very timing dependent and may fail."
+echo >&2 "If you don't need git-cvsexportcommit you're better off"
+echo >&2 "disabling it: make test GIT_SKIP_TESTS=t9200"
+echo >&2
+
cvs >/dev/null 2>&1
if test $? -ne 1
then
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: Test #7 in t9200-git-cvsexportcommit fails
2007-07-22 20:49 ` Jason Sewall
2007-07-22 21:42 ` Alex Riesen
@ 2007-07-22 22:19 ` Junio C Hamano
2007-07-23 3:59 ` [PATCH] Add a 1-second sleep to git-cvsexportcommit test Jason Sewall
1 sibling, 1 reply; 21+ messages in thread
From: Junio C Hamano @ 2007-07-22 22:19 UTC (permalink / raw)
To: Jason Sewall; +Cc: Alex Riesen, git, Junio C Hamano
"Jason Sewall" <jasonsewall@gmail.com> writes:
>> It'll never work, cvs does not commit changes made during one second,
>> as they have the same timestamp.
Heh, racy CVS?
> Why not add a delay in there, like this:
>
> id=$(git rev-list --max-count=1 HEAD) && sleep 2
>
> It makes the test work for me.
Sounds like an acceptable workaround. Care to send in a tested
signed patch?
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-22 22:19 ` Junio C Hamano
@ 2007-07-23 3:59 ` Jason Sewall
2007-07-23 4:32 ` Junio C Hamano
0 siblings, 1 reply; 21+ messages in thread
From: Jason Sewall @ 2007-07-23 3:59 UTC (permalink / raw)
To: git; +Cc: gitster, raa.lkml, Jason Sewall
Test #7 of t9200 isn't likely to succeed because tests are executed too fast for cvs; add a delay to give it a chance to succeed.
---
I think I didn't send this through the proper server, so here it is finally.
t/t9200-git-cvsexportcommit.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 4efa0c9..2096e59 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -164,6 +164,7 @@ test_expect_success \
git add "G g/with spaces.png" &&
git commit -a -m "Update with spaces" &&
id=$(git rev-list --max-count=1 HEAD) &&
+ sleep 1 &&
(cd "$CVSWORK" &&
git-cvsexportcommit -c $id
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/"
--
1.5.3.rc2.4.g726f9
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-23 3:59 ` [PATCH] Add a 1-second sleep to git-cvsexportcommit test Jason Sewall
@ 2007-07-23 4:32 ` Junio C Hamano
2007-07-23 7:55 ` Simon 'corecode' Schubert
0 siblings, 1 reply; 21+ messages in thread
From: Junio C Hamano @ 2007-07-23 4:32 UTC (permalink / raw)
To: Jason Sewall; +Cc: git, raa.lkml
Jason Sewall <jasonsewall@gmail.com> writes:
> Test #7 of t9200 isn't likely to succeed because tests are executed too fast for cvs; add a delay to give it a chance to succeed.
> ---
> I think I didn't send this through the proper server, so here it is finally.
> t/t9200-git-cvsexportcommit.sh | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
> index 4efa0c9..2096e59 100755
> --- a/t/t9200-git-cvsexportcommit.sh
> +++ b/t/t9200-git-cvsexportcommit.sh
> @@ -164,6 +164,7 @@ test_expect_success \
> git add "G g/with spaces.png" &&
> git commit -a -m "Update with spaces" &&
> id=$(git rev-list --max-count=1 HEAD) &&
> + sleep 1 &&
> (cd "$CVSWORK" &&
> git-cvsexportcommit -c $id
> test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/"
Thanks.
But this makes one wonder why only this test and nothing else is
affected. Maybe our machines are not fast enough for other
tests to execute inside a second, but in 6 months others start
to become problem and we would need a similar fix again?
I am tempted to do this instead, although it would make it much
slower.
It may be that we may want to fix this inside cvsexportcommit
itself, instead of working it around in the tests. If somebody
tries to push more than one commit from git using two
cvsexportcommit in a row, he would need to make sure that the
second run happens one or more seconds after the first run,
otherwise he will see the exact corruption in real life.
Anybody else have better ideas?
---
t/t9200-git-cvsexportcommit.sh | 29 ++++++++++++++++++-----------
1 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 4efa0c9..28c7dfa 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -28,6 +28,13 @@ git add empty &&
git commit -q -a -m "Initial" 2>/dev/null ||
exit 1
+git_cvsexportcommit () {
+ # CVS does not even look at files whose timestamps
+ # match the ones recorded in CVS/Entries
+ sleep 2 &&
+ git cvsexportcommit "$@"
+}
+
test_expect_success \
'New file' \
'mkdir A B C D E F &&
@@ -42,7 +49,7 @@ test_expect_success \
git commit -a -m "Test: New file" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git cvsexportcommit -c $id &&
+ git_cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.1/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "newfile2.txt/1.1/" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "newfile3.png/1.1/-kb" &&
@@ -66,7 +73,7 @@ test_expect_success \
git commit -a -m "Test: Remove, add and update" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git cvsexportcommit -c $id &&
+ git_cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.2/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
@@ -88,7 +95,7 @@ test_expect_success \
git commit -a -m "generation 2" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- ! git cvsexportcommit -c $id
+ ! git_cvsexportcommit -c $id
)'
#test_expect_success \
@@ -100,7 +107,7 @@ test_expect_success \
# git commit -a -m "generation 3" &&
# id=$(git rev-list --max-count=1 HEAD) &&
# (cd "$CVSWORK" &&
-# ! git cvsexportcommit -c $id
+# ! git_cvsexportcommit -c $id
# )'
# We reuse the state from two tests back here
@@ -114,7 +121,7 @@ test_expect_success \
git commit -a -m "test: remove only a binary file" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git cvsexportcommit -c $id &&
+ git_cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.2/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
@@ -132,7 +139,7 @@ test_expect_success \
git commit -a -m "test: remove only a binary file" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git cvsexportcommit -c $id &&
+ git_cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" &&
@@ -153,7 +160,7 @@ test_expect_success \
git commit -a -m "With spaces" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -c $id &&
+ git_cvsexportcommit -c $id &&
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.1/-kb with spaces.txt/1.1/"
)'
@@ -165,7 +172,7 @@ test_expect_success \
git commit -a -m "Update with spaces" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -c $id
+ git_cvsexportcommit -c $id
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/"
)'
@@ -190,7 +197,7 @@ test_expect_success \
git commit -a -m "Går det så går det" && \
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -v -c $id &&
+ git_cvsexportcommit -v -c $id &&
test "$(echo $(sort Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/CVS/Entries|cut -d/ -f2,3,5))" = "gårdetsågårdet.png/1.1/-kb gårdetsågårdet.txt/1.1/"
)'
@@ -208,7 +215,7 @@ test_expect_success \
git commit -a -m "Update two" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- ! git-cvsexportcommit -c $id
+ ! git_cvsexportcommit -c $id
)'
case "$(git repo-config --bool core.filemode)" in
@@ -225,7 +232,7 @@ test_expect_success \
git add G/off &&
git commit -a -m "Execute test" &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -c HEAD
+ git_cvsexportcommit -c HEAD
test -x G/on &&
! test -x G/off
)'
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-23 4:32 ` Junio C Hamano
@ 2007-07-23 7:55 ` Simon 'corecode' Schubert
2007-07-24 0:23 ` Robin Rosenberg
0 siblings, 1 reply; 21+ messages in thread
From: Simon 'corecode' Schubert @ 2007-07-23 7:55 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jason Sewall, git, raa.lkml
Junio C Hamano wrote:
> It may be that we may want to fix this inside cvsexportcommit
> itself, instead of working it around in the tests. If somebody
> tries to push more than one commit from git using two
> cvsexportcommit in a row, he would need to make sure that the
> second run happens one or more seconds after the first run,
> otherwise he will see the exact corruption in real life.
Ah, now I see the problem. The timestamp in the CVS/Entries is the same (because it only has second granularity), so cvs commit won't consider it as changed.
That's the reason why CVS usually waits until the second turns after a "update" (obviously not after a "commit"). So we could either turn back the timestamp in the Entries file (ugly) or simply wait until the second turns. Given the overall cvs performance, this won't be a big issue, I guess.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-23 7:55 ` Simon 'corecode' Schubert
@ 2007-07-24 0:23 ` Robin Rosenberg
2007-07-24 8:11 ` Simon 'corecode' Schubert
0 siblings, 1 reply; 21+ messages in thread
From: Robin Rosenberg @ 2007-07-24 0:23 UTC (permalink / raw)
To: Simon 'corecode' Schubert
Cc: Junio C Hamano, Jason Sewall, git, raa.lkml
måndag 23 juli 2007 skrev Simon 'corecode' Schubert:
> Junio C Hamano wrote:
> > It may be that we may want to fix this inside cvsexportcommit
> > itself, instead of working it around in the tests. If somebody
> > tries to push more than one commit from git using two
> > cvsexportcommit in a row, he would need to make sure that the
> > second run happens one or more seconds after the first run,
> > otherwise he will see the exact corruption in real life.
>
> Ah, now I see the problem. The timestamp in the CVS/Entries is the same (because it only has second granularity),
> so cvs commit won't consider it as changed.
>
> That's the reason why CVS usually waits until the second turns after a "update" (obviously not after a "commit").
> So we could either turn back the timestamp in the Entries file (ugly) or simply wait until the second turns. Given
> the overall cvs performance, this won't be a big issue, I guess.
>
> cheers
> simon
>
CVS sleeps after commit here. Can we bisect it? I have 1.12.3 (mandriva). The patch below I think
would work around the problem, rather than trying to fix the test. but I'd like to have the last CVS
revision where it does not work for the patch comment
Since the sleep is per invocation of cvsexportcommit it won't hurt too much since it is rarely invoked
on a huge number of git commits.
-- robin
diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index d6ae99b..6377408 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -277,6 +277,10 @@ if ($opt_c) {
# clean up
unlink(".cvsexportcommit.diff");
+# timestamp problems. Invoking this command on a machine that is too fast may result in
+# CVS not recognizing changed because the timestamp is unchanged
+sleep(1);
+
sub usage {
print STDERR <<END;
Usage: GIT_DIR=/path/to/.git ${\basename $0} [-h] [-p] [-v] [-c] [-f] [-m msgprefix] [ parent ] commit
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 0:23 ` Robin Rosenberg
@ 2007-07-24 8:11 ` Simon 'corecode' Schubert
2007-07-24 8:33 ` Robin Rosenberg
0 siblings, 1 reply; 21+ messages in thread
From: Simon 'corecode' Schubert @ 2007-07-24 8:11 UTC (permalink / raw)
To: Robin Rosenberg; +Cc: Junio C Hamano, Jason Sewall, git, raa.lkml
Robin Rosenberg wrote:
>>> It may be that we may want to fix this inside cvsexportcommit
>>> itself, instead of working it around in the tests. If somebody
>>> tries to push more than one commit from git using two
>>> cvsexportcommit in a row, he would need to make sure that the
>>> second run happens one or more seconds after the first run,
>>> otherwise he will see the exact corruption in real life.
>> Ah, now I see the problem. The timestamp in the CVS/Entries is the same (because it only has second granularity),
>> so cvs commit won't consider it as changed.
>>
>> That's the reason why CVS usually waits until the second turns after a "update" (obviously not after a "commit").
>> So we could either turn back the timestamp in the Entries file (ugly) or simply wait until the second turns. Given
>> the overall cvs performance, this won't be a big issue, I guess.
>
> CVS sleeps after commit here. Can we bisect it? I have 1.12.3
> (mandriva). The patch below I think would work around the problem,
> rather than trying to fix the test. but I'd like to have the last CVS
> revision where it does not work for the patch comment
This is a strange thing. CVS has this in their commit code since 1996. So I wonder why this is getting triggered.
> Since the sleep is per invocation of cvsexportcommit it won't hurt
> too much since it is rarely invoked on a huge number of git commits.
The question also is, why does this happen on two sequential invocations of cvsexportcommit, but not on two cvs commits done by cvsexportcommit? This should look the same to cvs, no?
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 8:11 ` Simon 'corecode' Schubert
@ 2007-07-24 8:33 ` Robin Rosenberg
2007-07-24 8:38 ` Simon 'corecode' Schubert
0 siblings, 1 reply; 21+ messages in thread
From: Robin Rosenberg @ 2007-07-24 8:33 UTC (permalink / raw)
To: Simon 'corecode' Schubert
Cc: Junio C Hamano, Jason Sewall, git, raa.lkml
tisdag 24 juli 2007 skrev Simon 'corecode' Schubert:
> Robin Rosenberg wrote:
> >>> It may be that we may want to fix this inside cvsexportcommit
> >>> itself, instead of working it around in the tests. If somebody
> >>> tries to push more than one commit from git using two
> >>> cvsexportcommit in a row, he would need to make sure that the
> >>> second run happens one or more seconds after the first run,
> >>> otherwise he will see the exact corruption in real life.
> >> Ah, now I see the problem. The timestamp in the CVS/Entries is the same (because it only has second granularity),
> >> so cvs commit won't consider it as changed.
> >>
> >> That's the reason why CVS usually waits until the second turns after a "update" (obviously not after a "commit").
> >> So we could either turn back the timestamp in the Entries file (ugly) or simply wait until the second turns. Given
> >> the overall cvs performance, this won't be a big issue, I guess.
> >
> > CVS sleeps after commit here. Can we bisect it? I have 1.12.3
> > (mandriva). The patch below I think would work around the problem,
> > rather than trying to fix the test. but I'd like to have the last CVS
> > revision where it does not work for the patch comment
>
> This is a strange thing. CVS has this in their commit code since 1996. So I wonder why this is getting triggered.
>
> > Since the sleep is per invocation of cvsexportcommit it won't hurt
> > too much since it is rarely invoked on a huge number of git commits.
>
> The question also is, why does this happen on two sequential invocations of cvsexportcommit, but not on two cvs commits done by cvsexportcommit? This should look the same to cvs, no?
I reread my post here... My last sentence was a comment to the patch and not the sleep in CVS.
-- robin
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 8:33 ` Robin Rosenberg
@ 2007-07-24 8:38 ` Simon 'corecode' Schubert
2007-07-24 9:34 ` Robin Rosenberg
0 siblings, 1 reply; 21+ messages in thread
From: Simon 'corecode' Schubert @ 2007-07-24 8:38 UTC (permalink / raw)
To: Robin Rosenberg; +Cc: Junio C Hamano, Jason Sewall, git, raa.lkml
Robin Rosenberg wrote:
>>> Since the sleep is per invocation of cvsexportcommit it won't hurt
>>> too much since it is rarely invoked on a huge number of git commits.
>> The question also is, why does this happen on two sequential invocations of cvsexportcommit, but not on two cvs commits done by cvsexportcommit? This should look the same to cvs, no?
>
> I reread my post here... My last sentence was a comment to the patch
> and not the sleep in CVS.
Yes, I realize this. Still, I wonder the same: why is this needed *per invocation of cvsexportcommit* and not *per invocation of cvs*? Seems unintuitive to me, or I didn't read the patch good enough.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 8:38 ` Simon 'corecode' Schubert
@ 2007-07-24 9:34 ` Robin Rosenberg
2007-07-24 10:14 ` Junio C Hamano
2007-07-24 19:02 ` Linus Torvalds
0 siblings, 2 replies; 21+ messages in thread
From: Robin Rosenberg @ 2007-07-24 9:34 UTC (permalink / raw)
To: Simon 'corecode' Schubert
Cc: Junio C Hamano, Jason Sewall, git, raa.lkml
tisdag 24 juli 2007 skrev Simon 'corecode' Schubert:
> Robin Rosenberg wrote:
> >>> Since the sleep is per invocation of cvsexportcommit it won't hurt
> >>> too much since it is rarely invoked on a huge number of git commits.
> >> The question also is, why does this happen on two sequential invocations
> >> of cvsexportcommit, but not on two cvs commits done by cvsexportcommit?
> >> This should look the same to cvs, no?
> >
> > I reread my post here... My last sentence was a comment to the patch
> > and not the sleep in CVS.
>
> Yes, I realize this. Still, I wonder the same: why is this needed *per
> invocation of cvsexportcommit* and not *per invocation of cvs*? Seems
> unintuitive to me, or I didn't read the patch good enough.
Besides the potential update and status commands cvs is only invoked once per
invocation of cvsexportcommit so there is no difference between a sleep per CVS
invokation vs a sleep per cvsexportcommit invocation. The sleep is needed to make
sure file modification times resulting from git-apply are different.
The sleep in CVS fixes that on my machine so I do not have a problem (and cannot
really verify that the patch I made fixes the problem).
This debug patch reveals the sleep in CVS. CVS does the sleep differently for different platforms.
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 4efa0c9..9a1e998 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -153,7 +153,7 @@ test_expect_success \
git commit -a -m "With spaces" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -c $id &&
+ strace -fF -o a git-cvsexportcommit -c $id &&
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.1/-kb with spaces.txt/1.1/"
)'
@@ -165,7 +165,7 @@ test_expect_success \
git commit -a -m "Update with spaces" &&
id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" &&
- git-cvsexportcommit -c $id
+ strace -fF -o b git-cvsexportcommit -c $id
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/"
)'
Tail of the first cvsexportcommit invocation (trash/cvswork/a) from the place where it writes the last file
into the CVS repo.
27778 write(7, "/with spaces.png/1.1/Tue Jul 24 "..., 99) = 99
27778 close(7) = 0
27778 munmap(0xb7f15000, 4096) = 0
27778 rename("CVS/Entries.Backup", "CVS/Entries") = 0
27778 unlink("CVS/Entries.Log") = 0
27778 fchdir(6) = 0
27778 close(6) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
27778 time(NULL) = 1185268822
27778 gettimeofday({1185268822, 953340}, NULL) = 0
Here CVS sleeps. The amount varies between invocations since it
only sleeps enough for the seconds to wrap.
27778 nanosleep({0, 46660000}, NULL) = 0
27778 time(NULL) = 1185268823
27778 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
27778 close(1 <unfinished ...>
27766 <... read resumed> "", 4096) = 0
27778 <... close resumed> ) = 0
27766 close(6 <unfinished ...>
27778 munmap(0xb7f14000, 4096 <unfinished ...>
27766 <... close resumed> ) = 0
27778 <... munmap resumed> ) = 0
Back into git-cvsexportcommit
27766 rt_sigaction(SIGHUP, {SIG_IGN}, <unfinished ...>
27778 exit_group(0) = ?
27766 <... rt_sigaction resumed> {SIG_DFL}, 8) = 0
27766 --- SIGCHLD (Child exited) @ 0 (0) ---
27766 rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
27766 rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
27766 waitpid(27778, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 27778
27766 rt_sigaction(SIGHUP, {SIG_DFL}, NULL, 8) = 0
27766 rt_sigaction(SIGINT, {SIG_DFL}, NULL, 8) = 0
27766 rt_sigaction(SIGQUIT, {SIG_DFL}, NULL, 8) = 0
27766 unlink(".msg") = 0
27766 unlink(".cvsexportcommit.diff") = 0
27766 stat64("/home/me/tmp/git-cvsapplycommit-55ADfh", {st_mode=S_IFDIR|0700, st_size=6, ...}) = 0
27766 lstat64("/home/me/tmp/git-cvsapplycommit-55ADfh", {st_mode=S_IFDIR|0700, st_size=6, ...}) = 0
27766 chmod("/home/me/tmp/git-cvsapplycommit-55ADfh", 0700) = 0
27766 open("/home/me/tmp/git-cvsapplycommit-55ADfh", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 6
27766 fstat64(6, {st_mode=S_IFDIR|0700, st_size=6, ...}) = 0
27766 fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
27766 getdents64(6, /* 2 entries */, 4096) = 48
27766 getdents64(6, /* 0 entries */, 4096) = 0
27766 close(6) = 0
27766 rmdir("/home/me/tmp/git-cvsapplycommit-55ADfh") = 0
27766 write(1, "/home/me/SW/GIT/t/trash/cvsroot/"..., 234) = 234
27766 exit_group(0) = ?
-- robin
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 9:34 ` Robin Rosenberg
@ 2007-07-24 10:14 ` Junio C Hamano
2007-07-24 12:57 ` Robin Rosenberg
2007-07-24 19:02 ` Linus Torvalds
1 sibling, 1 reply; 21+ messages in thread
From: Junio C Hamano @ 2007-07-24 10:14 UTC (permalink / raw)
To: Robin Rosenberg
Cc: Simon 'corecode' Schubert, Jason Sewall, git, raa.lkml
Robin Rosenberg <robin.rosenberg.lists@dewire.com> writes:
> Tail of the first cvsexportcommit invocation (trash/cvswork/a) from the place where it writes the last file
> into the CVS repo.
>
> 27778 write(7, "/with spaces.png/1.1/Tue Jul 24 "..., 99) = 99
> 27778 close(7) = 0
> 27778 munmap(0xb7f15000, 4096) = 0
> 27778 rename("CVS/Entries.Backup", "CVS/Entries") = 0
> 27778 unlink("CVS/Entries.Log") = 0
> 27778 fchdir(6) = 0
> 27778 close(6) = 0
> ...
> 27778 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> 27778 time(NULL) = 1185268822
> 27778 gettimeofday({1185268822, 953340}, NULL) = 0
>
> Here CVS sleeps. The amount varies between invocations since it
> only sleeps enough for the seconds to wrap.
Makes one wonder what it would do if you are on a filesystem
with coarser-than-a-second timestamp resolution.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 10:14 ` Junio C Hamano
@ 2007-07-24 12:57 ` Robin Rosenberg
2007-07-24 15:31 ` Jason Sewall
0 siblings, 1 reply; 21+ messages in thread
From: Robin Rosenberg @ 2007-07-24 12:57 UTC (permalink / raw)
To: Junio C Hamano
Cc: Simon 'corecode' Schubert, Jason Sewall, git, raa.lkml
tisdag 24 juli 2007 skrev Junio C Hamano:
> > Here CVS sleeps. The amount varies between invocations since it
> > only sleeps enough for the seconds to wrap.
>
> Makes one wonder what it would do if you are on a filesystem
> with coarser-than-a-second timestamp resolution.
Like fat, but then the last test fails on FAT, which wasn't the case. Any other reasonable file
systems that comes to your mind?
Jason, could you provide us with some more information on OS, fs, cvs version etc.
Whether timestamp granularity is larger than a second or not can be checked with this line, I think:
touch a && ls --full-time a && sleep 1 && touch a && ls --full-time a
Sample output where the timestamps are roughly one second apart.
-rw-r--r-- 1 me me 0 2007-07-24 14:15:47.330927250 +0200 a
-rw-r--r-- 1 me me 0 2007-07-24 14:15:48.338990250 +0200 a
-- robin
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 12:57 ` Robin Rosenberg
@ 2007-07-24 15:31 ` Jason Sewall
0 siblings, 0 replies; 21+ messages in thread
From: Jason Sewall @ 2007-07-24 15:31 UTC (permalink / raw)
To: Robin Rosenberg
Cc: Junio C Hamano, Simon 'corecode' Schubert, git, raa.lkml
Fedora 7
Kernel 2.6.22 (SMP)
CVS 1.11.22
ext3 (unsure of version or how to discover version)
As one would expect from the above, the 'granularity' test you gave my
reveals 1-second granularity.
On 7/24/07, Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> tisdag 24 juli 2007 skrev Junio C Hamano:
> > > Here CVS sleeps. The amount varies between invocations since it
> > > only sleeps enough for the seconds to wrap.
> >
> > Makes one wonder what it would do if you are on a filesystem
> > with coarser-than-a-second timestamp resolution.
>
> Like fat, but then the last test fails on FAT, which wasn't the case. Any other reasonable file
> systems that comes to your mind?
>
> Jason, could you provide us with some more information on OS, fs, cvs version etc.
>
> Whether timestamp granularity is larger than a second or not can be checked with this line, I think:
>
> touch a && ls --full-time a && sleep 1 && touch a && ls --full-time a
>
> Sample output where the timestamps are roughly one second apart.
> -rw-r--r-- 1 me me 0 2007-07-24 14:15:47.330927250 +0200 a
> -rw-r--r-- 1 me me 0 2007-07-24 14:15:48.338990250 +0200 a
>
> -- robin
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 9:34 ` Robin Rosenberg
2007-07-24 10:14 ` Junio C Hamano
@ 2007-07-24 19:02 ` Linus Torvalds
2007-07-24 22:56 ` Robin Rosenberg
2007-07-25 7:35 ` Andy Parkins
1 sibling, 2 replies; 21+ messages in thread
From: Linus Torvalds @ 2007-07-24 19:02 UTC (permalink / raw)
To: Robin Rosenberg
Cc: Simon 'corecode' Schubert, Junio C Hamano, Jason Sewall,
git, raa.lkml
On Tue, 24 Jul 2007, Robin Rosenberg wrote:
>
> 27778 time(NULL) = 1185268822
> 27778 gettimeofday({1185268822, 953340}, NULL) = 0
>
> Here CVS sleeps. The amount varies between invocations since it
> only sleeps enough for the seconds to wrap.
>
> 27778 nanosleep({0, 46660000}, NULL) = 0
> 27778 time(NULL) = 1185268823
Btw, this is *really* dangerous and buggy.
The reason? The CPU real-time clock is very different from whatever clock
the filesystems may use.
Filesystems generally do not use the same clock as the CPU does. That's
obviously true for things like networked filesystems, but it's actually
true even for local filesystems (even on UP) because the CPU "realtime"
clock rather expensive and much too exact for them. It does all the fancy
NTP date correction etc, and it has all the complex code to actually make
sure you don't get any time jumps etc.
So you should basically assume that all filesystems will use a clock that
is *close*, but not synchronized with the real-time clock. You have NFS
issues, but even locally you'd generally expect the local filesystem to be
based on a simply clock that is updated by the timer tick, and is "close
enough" to the realtime clock that you get with gettimeofday(). But *not*
identical.
So if you sleep for one second, the filesystem times will update by one
second, but if you try to *synchronize* to exactly one second, it's not at
all certain that the *filesystem* clock will be synchronized to the same
second! Time skew is simply a fact of life.
A really obvious example of this is NFS. Anybody who thinks that the NFS
times are synchronized to the client real-time clock is just seriously
mistaken. They may be close, but they won't be identical.
So I think CVS is simply buggy here. It assumes that "filesystem time" is
the same as "CPU time", and while that sounds like an obvious assumption
to make, if you think about it for even five seconds (the NFS case above),
you realize that it's a totally *buggy* assumption.
In other words: if you want the timestamps on two files to be one second
apart, you have to sleep one second in between writing them (or you have
to set the time explicitly with "utimes()" or similar). Doing the
"optimized sleep" simply DOES NOT WORK.
So CVS is buggy. Big surprise. Film at 11.
Btw, if anybody can think of a similar scenario in git, please holler. We
shouldn't have those kinds of bugs.
So the things you generally can depend on:
- *within* a single filesystem, the clocks should be comparable (ie you
can do "stat()" on two files, and compare the date-stamps between the
files).
- the clocks should obviously be "close" to the local realtime. Time skew
is a fact of life, but if time skews by more than a big fraction of a
second, something is wrong. It's certainly still very possible (NFS
with clients not running NTP), but at least at that point a program can
validly say "badly maintained network, it's the users problem".
but depending on exact time syncronization is a really really bad idea.
Linus
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 19:02 ` Linus Torvalds
@ 2007-07-24 22:56 ` Robin Rosenberg
2007-07-24 23:19 ` Linus Torvalds
2007-07-25 7:35 ` Andy Parkins
1 sibling, 1 reply; 21+ messages in thread
From: Robin Rosenberg @ 2007-07-24 22:56 UTC (permalink / raw)
To: Linus Torvalds
Cc: Simon 'corecode' Schubert, Junio C Hamano, Jason Sewall,
git, raa.lkml
tisdag 24 juli 2007 skrev Linus Torvalds:
>
> On Tue, 24 Jul 2007, Robin Rosenberg wrote:
> >
> > 27778 time(NULL) = 1185268822
> > 27778 gettimeofday({1185268822, 953340}, NULL) = 0
> >
> > Here CVS sleeps. The amount varies between invocations since it
> > only sleeps enough for the seconds to wrap.
> >
> > 27778 nanosleep({0, 46660000}, NULL) = 0
> > 27778 time(NULL) = 1185268823
>
> Btw, this is *really* dangerous and buggy.
>
> The reason? The CPU real-time clock is very different from whatever clock
> the filesystems may use.
>
> Filesystems generally do not use the same clock as the CPU does. That's
> obviously true for things like networked filesystems, but it's actually
> true even for local filesystems (even on UP) because the CPU "realtime"
> clock rather expensive and much too exact for them. It does all the fancy
> NTP date correction etc, and it has all the complex code to actually make
> sure you don't get any time jumps etc.
Having our mind enlightened, I propose this or nothing as a workaround. Since
cvsexportcommit is really a CVS workaround we might work around some bugs
in CVS itself while we're at it.
-- robin
From: Robin Rosenberg <robin.rosenberg@dewire.com>
Date: Wed, 25 Jul 2007 00:53:24 +0200
Subject: [PATCH] Sleep in git-cvsexportcommit
If git cvsexportcommit is executed fast enough in sequence, the CVS
timestamps could end up being the same. CVS tries to fix this
by sleeping until the CPU clock changes seconds. Unfortunately,
the CPU clock and the file system clock are not necessarily the same, so
the timestamps could be the same anyway. When that happens CVS may not
recognize changed files and cvs will forget to commit some files.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
git-cvsexportcommit.perl | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index d6ae99b..f6366be 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -277,6 +277,11 @@ if ($opt_c) {
# clean up
unlink(".cvsexportcommit.diff");
+# CVS version 1.11.x and 1.12.x sleeps the wrong way to ensure the timestamp
+# used by CVS and the one set by subsequence file modifications are different.
+# If they are not different CVS will not detect changes.
+sleep(1);
+
sub usage {
print STDERR <<END;
Usage: GIT_DIR=/path/to/.git ${\basename $0} [-h] [-p] [-v] [-c] [-f] [-m msgprefix] [ parent ] commit
--
1.5.2.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 22:56 ` Robin Rosenberg
@ 2007-07-24 23:19 ` Linus Torvalds
0 siblings, 0 replies; 21+ messages in thread
From: Linus Torvalds @ 2007-07-24 23:19 UTC (permalink / raw)
To: Robin Rosenberg
Cc: Simon 'corecode' Schubert, Junio C Hamano, Jason Sewall,
git, raa.lkml
On Wed, 25 Jul 2007, Robin Rosenberg wrote:
>
> Having our mind enlightened, I propose this or nothing as a workaround. Since
> cvsexportcommit is really a CVS workaround we might work around some bugs
> in CVS itself while we're at it.
Side note: I think the reason it came up now is that with CONFIG_NO_HZ the
Linux filesystem clock will easily be off by half a second even for local
filesystems.
With CONFIG_NO_HZ, we don't update the time as religiously, and as a
result, people who look at the low-resolution time (like filesystems) will
get a noticeable skew.
Quite frankly, that's a Linux kernel bug, and we'll fix it. But it doesn't
really invalidate the argument: applications really shouldn't depend on
the "filesystem time" being in sync with the "CPU time", and it may be
that the kernel bug was the one that ended up exposing this mis-feature of
CVS.
Normally, Linux (and probably most other systems) will keep the local
filesystems synchronized to within at least one clock-tick of the
real-time clock, so the clock skew between filesystems and CPU is at most
in the "few millisecond" range.
That's also the kind of range that NTP will largely guarantee, so
generally, in most circumstances, while you cannot (and shouldn't) expect
filesystem times to be "accurate", in most good situations you'll never
see skews over a few milliseconds.
(But on the other hand, search for "kerberos" and "time skew" on google,
and you see discussions about allowing five *minutes* of skew etc, so
clearly the model of "everybody runs NTP" isn't exactly all of it ;)
So I suspect that the CVS code is (a) buggy and (b) hard to show the bug
actually triggering on a well-maintained machine, and that it may well be
the case that the only reason it shows up as a bug now is that Jason is
running a recent kernel with CONFIG_NO_HZ. I have no idea what the default
Fedora 7 kernel does.
Linus
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-24 19:02 ` Linus Torvalds
2007-07-24 22:56 ` Robin Rosenberg
@ 2007-07-25 7:35 ` Andy Parkins
2007-07-25 7:43 ` Marius Storm-Olsen
1 sibling, 1 reply; 21+ messages in thread
From: Andy Parkins @ 2007-07-25 7:35 UTC (permalink / raw)
To: git
Cc: Linus Torvalds, Robin Rosenberg,
Simon 'corecode' Schubert, Junio C Hamano, Jason Sewall,
raa.lkml
On Tuesday 2007 July 24, Linus Torvalds wrote:
> So if you sleep for one second, the filesystem times will update by one
> second, but if you try to *synchronize* to exactly one second, it's not at
> all certain that the *filesystem* clock will be synchronized to the same
> second! Time skew is simply a fact of life.
I think it's even worse; if memory serves one of the Windows file systems
(spit) only stores times to a two-second resolution. So half the time,
waiting for one second won't change the time stamp _at all_.
Andy
--
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add a 1-second sleep to git-cvsexportcommit test
2007-07-25 7:35 ` Andy Parkins
@ 2007-07-25 7:43 ` Marius Storm-Olsen
0 siblings, 0 replies; 21+ messages in thread
From: Marius Storm-Olsen @ 2007-07-25 7:43 UTC (permalink / raw)
To: Andy Parkins
Cc: git, Linus Torvalds, Robin Rosenberg,
Simon 'corecode' Schubert, Junio C Hamano, Jason Sewall,
raa.lkml
[-- Attachment #1: Type: text/plain, Size: 922 bytes --]
Andy Parkins said the following on 25.07.2007 09:35:
> On Tuesday 2007 July 24, Linus Torvalds wrote:
>
>> So if you sleep for one second, the filesystem times will update by one
>> second, but if you try to *synchronize* to exactly one second, it's not at
>> all certain that the *filesystem* clock will be synchronized to the same
>> second! Time skew is simply a fact of life.
>
> I think it's even worse; if memory serves one of the Windows file systems
> (spit) only stores times to a two-second resolution. So half the time,
> waiting for one second won't change the time stamp _at all_.
"File time stamps on FAT drives are rounded to the nearest two seconds
(even number) when the file is written to the drive. The file time
stamps on NTFS drives are rounded to the nearest 100 nanoseconds when
the file is written to the drive."
http://support.microsoft.com/kb/127830
--
.marius
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 187 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2007-07-25 7:43 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-22 19:41 Test #7 in t9200-git-cvsexportcommit fails Jason Sewall
2007-07-22 20:21 ` Alex Riesen
2007-07-22 20:49 ` Jason Sewall
2007-07-22 21:42 ` Alex Riesen
2007-07-22 22:19 ` Junio C Hamano
2007-07-23 3:59 ` [PATCH] Add a 1-second sleep to git-cvsexportcommit test Jason Sewall
2007-07-23 4:32 ` Junio C Hamano
2007-07-23 7:55 ` Simon 'corecode' Schubert
2007-07-24 0:23 ` Robin Rosenberg
2007-07-24 8:11 ` Simon 'corecode' Schubert
2007-07-24 8:33 ` Robin Rosenberg
2007-07-24 8:38 ` Simon 'corecode' Schubert
2007-07-24 9:34 ` Robin Rosenberg
2007-07-24 10:14 ` Junio C Hamano
2007-07-24 12:57 ` Robin Rosenberg
2007-07-24 15:31 ` Jason Sewall
2007-07-24 19:02 ` Linus Torvalds
2007-07-24 22:56 ` Robin Rosenberg
2007-07-24 23:19 ` Linus Torvalds
2007-07-25 7:35 ` Andy Parkins
2007-07-25 7:43 ` Marius Storm-Olsen
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).