Re: [PATCH 06/11] commit: add tests of commit races

2015-02-11 Thread Junio C Hamano
Michael Haggerty mhag...@alum.mit.edu writes:

 On the other hand, there's this [1] and this [2] from the FSF, which
 recommend a copyright blurb at the beginning of every source file.
 Though actually the recommendation is to include a GPL blurb too, not
 just a naked copyright line like I used. But I get the feeling that the
 FSF's recommendation is more for ideological than for legal reasons.

It is relatively recent (late 1980s) that US became part of Berne
Convention (1886).  Before that you had to write Copyright and All
Rights Reserved (or Todos Derechos Reserrvados) in Buenos Aires
days.

It is not surprising to see the more cautious practice from the
older days in recommendations by an old organization like FSF.

 Is there a reason you did not append the tests in 7509 ?
 
 Hmph.

 I don't know what Hmph means in this context.

Hmph, it might deserve more thought, but I do not have opinion
right now.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/11] commit: add tests of commit races

2015-02-11 Thread Stefan Beller
On Wed, Feb 11, 2015 at 10:10 AM, Junio C Hamano gits...@pobox.com wrote:
 Michael Haggerty mhag...@alum.mit.edu writes:

 On the other hand, there's this [1] and this [2] from the FSF, which
 recommend a copyright blurb at the beginning of every source file.
 Though actually the recommendation is to include a GPL blurb too, not
 just a naked copyright line like I used. But I get the feeling that the
 FSF's recommendation is more for ideological than for legal reasons.

 It is relatively recent (late 1980s) that US became part of Berne
 Convention (1886).  Before that you had to write Copyright and All
 Rights Reserved (or Todos Derechos Reserrvados) in Buenos Aires
 days.

Quoting from wikipedia[1]

(note however that when the United States joined the Convention
in 1988, it continued to make statutory damages and attorney's fees
only available for registered works).

Does that mean if somebody would infringe the GPL on git (e.g. selling
a modified git version without giving sources), it would be harder to
tell him to stop because of the missing attorney's fees in case we drop
out the copyright notices? (I have no deep understanding of legal
processes in the US).


 It is not surprising to see the more cautious practice from the
 older days in recommendations by an old organization like FSF.

 Is there a reason you did not append the tests in 7509 ?

You convinced me that having to start with an orphan commit justifies
a new test file as well as the nature of the test.


 Hmph.

 I don't know what Hmph means in this context.

 Hmph, it might deserve more thought, but I do not have opinion
 right now.

[1] http://en.wikipedia.org/wiki/Berne_Convention
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/11] commit: add tests of commit races

2015-02-11 Thread Junio C Hamano
Stefan Beller sbel...@google.com writes:

 Quoting from wikipedia[1]

 (note however that when the United States joined the Convention
 in 1988, it continued to make statutory damages and attorney's fees
 only available for registered works).

 Does that mean if somebody would infringe the GPL on git (e.g. selling
 a modified git version without giving sources), it would be harder to
 tell him to stop because of the missing attorney's fees in case we drop
 out the copyright notices? (I have no deep understanding of legal
 processes in the US).

No.  registered works in that sentence is about registering
copyright with U.S. Copyright Office.  In-file Copyright circle-c
line does not have much to do with that.



--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/11] commit: add tests of commit races

2015-02-11 Thread Michael Haggerty
On 02/10/2015 08:12 PM, Junio C Hamano wrote:
 Stefan Beller sbel...@google.com writes:
 
 On Sun, Feb 8, 2015 at 8:14 AM, Michael Haggerty mhag...@alum.mit.edu 
 wrote:

 +# Copyright (c) 2014 Michael Haggerty mhag...@alum.mit.edu

 What is the projects stance on copyright lines?
 
 I do not think we have a strong one.
 
 I've seen files (most of them from the beginning) having some copyright 
 lines,
 other files (often introduced way later) not having them, because
 we're git and have
 history, so we know who did it.
 
 I personally agree with that statement.  Also, a copyright notice
 per file is often added when a new file is added, but that ends up
 giving false sense of ownership to everybody else down the line
 even after the file has been extensively modified.  It's not like
 Michael solely owns all lines in this file in later versions.  And
 even if people added their name at the top every time they make any
 change, their names tend to stay even when their contributions are
 later completely rewritten or removed.
 
 In a sense, my agreement with your statement is stronger than Yes,
 Git can tell us who did what anyway.  What we can find in the
 history is the sole source of truth, and in-file copyright notice is
 misleading.  You do not even have to have one in the Berne signatory
 nations anyway.

I only put a copyright notice there because I thought it was standard
practice. I think it is ugly and would rather do without it, even aside
from the practical problems that Junio mentioned.

On the other hand, there's this [1] and this [2] from the FSF, which
recommend a copyright blurb at the beginning of every source file.
Though actually the recommendation is to include a GPL blurb too, not
just a naked copyright line like I used. But I get the feeling that the
FSF's recommendation is more for ideological than for legal reasons.

If I don't hear anything else, I'll delete the copyright line in the reroll.

 The tests themselves look fine.

 Is there a reason you did not append the tests in 7509 ?
 
 Hmph.

I don't know what Hmph means in this context.

The description for t7509 is git commit --reset-author, which doesn't
seem to describe the new tests.

There are also

t7500 git commit / Tests for selected commit options
t7501 git commit
t7502 git commit porcelain-ish

I suppose the new tests could go in any of these. But since the tests
are thematically a bit unusual (dealing with races rather than testing
command-line options) and they start with an orphan commit, I thought it
would be just as easy to put them in their own file to make it clear
that they are independent.

I really don't care either way.

Michael

[1] http://www.gnu.org/licenses/gpl-howto.html
[2] http://www.gnu.org/licenses/gpl-faq.html#NoticeInSourceFile

-- 
Michael Haggerty
mhag...@alum.mit.edu

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/11] commit: add tests of commit races

2015-02-10 Thread Junio C Hamano
Stefan Beller sbel...@google.com writes:

 On Sun, Feb 8, 2015 at 8:14 AM, Michael Haggerty mhag...@alum.mit.edu wrote:

 +# Copyright (c) 2014 Michael Haggerty mhag...@alum.mit.edu

 What is the projects stance on copyright lines?

I do not think we have a strong one.

 I've seen files (most of them from the beginning) having some copyright lines,
 other files (often introduced way later) not having them, because
 we're git and have
 history, so we know who did it.

I personally agree with that statement.  Also, a copyright notice
per file is often added when a new file is added, but that ends up
giving false sense of ownership to everybody else down the line
even after the file has been extensively modified.  It's not like
Michael solely owns all lines in this file in later versions.  And
even if people added their name at the top every time they make any
change, their names tend to stay even when their contributions are
later completely rewritten or removed.

In a sense, my agreement with your statement is stronger than Yes,
Git can tell us who did what anyway.  What we can find in the
history is the sole source of truth, and in-file copyright notice is
misleading.  You do not even have to have one in the Berne signatory
nations anyway.

 The tests themselves look fine.

 Is there a reason you did not append the tests in 7509 ?

Hmph.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/11] commit: add tests of commit races

2015-02-09 Thread Stefan Beller
On Sun, Feb 8, 2015 at 8:14 AM, Michael Haggerty mhag...@alum.mit.edu wrote:

 diff --git a/t/t7516-commit-races.sh b/t/t7516-commit-races.sh
 new file mode 100755
 index 000..5efa351
 --- /dev/null
 +++ b/t/t7516-commit-races.sh
 @@ -0,0 +1,38 @@
 +#!/bin/sh
 +#
 +# Copyright (c) 2014 Michael Haggerty mhag...@alum.mit.edu

What is the projects stance on copyright lines?
I've seen files (most of them from the beginning) having some copyright lines,
other files (often introduced way later) not having them, because
we're git and have
history, so we know who did it.

The tests themselves look fine.

Is there a reason you did not append the tests in 7509 ?



--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 06/11] commit: add tests of commit races

2015-02-08 Thread Michael Haggerty
Committing involves the following steps:

1. Determine the current value of HEAD (if any).
2. Create the new commit object.
3. Update HEAD.

Please note that step 2 can take arbitrarily long, because it might
involve the user editing a commit message.

If a second process sneaks in a commit during step 2, then the first
commit process should fail. This is usually done correctly, because
step 3 verifies that HEAD still points at the same commit that it
pointed to during step 1.

However, if there is a race when creating an *orphan* commit, then the
test in step 3 is skipped.

Add tests for proper handling of such races. One of the new tests
fails. It will be fixed in a moment.

Signed-off-by: Michael Haggerty mhag...@alum.mit.edu
---
 t/t7516-commit-races.sh | 38 ++
 1 file changed, 38 insertions(+)
 create mode 100755 t/t7516-commit-races.sh

diff --git a/t/t7516-commit-races.sh b/t/t7516-commit-races.sh
new file mode 100755
index 000..5efa351
--- /dev/null
+++ b/t/t7516-commit-races.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# Copyright (c) 2014 Michael Haggerty mhag...@alum.mit.edu
+#
+
+test_description='git commit races'
+. ./test-lib.sh
+
+test_tick
+
+test_expect_success 'set up editor' '
+   cat editor -\EOF 
+   #!/bin/sh
+   git commit --allow-empty -m hare
+   echo tortoise $1
+   EOF
+   chmod +x editor
+'
+
+test_expect_failure 'race to create orphan commit' '
+   test_must_fail env EDITOR=./editor git commit --allow-empty 
+   git show -s --pretty=format:%s subject 
+   grep -q hare subject 
+   test -z $(git show -s --pretty=format:%P)
+'
+
+test_expect_success 'race to create non-orphan commit' '
+   git checkout --orphan branch 
+   git commit --allow-empty -m base 
+   git rev-parse HEAD base 
+   test_must_fail env EDITOR=./editor git commit --allow-empty 
+   git show -s --pretty=format:%s subject 
+   grep -q hare subject 
+   git rev-parse HEAD^ parent 
+   test_cmp base parent
+'
+
+test_done
-- 
2.1.4

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html