All of lore.kernel.org
 help / color / mirror / Atom feed
* git-subtree Ready #2
@ 2012-02-11 17:35 David A. Greene
  2012-02-11 18:03 ` Junio C Hamano
  2012-02-15  4:30 ` David A. Greene
  0 siblings, 2 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-11 17:35 UTC (permalink / raw)
  To: git

[This bounced for some reason.]

Ok, I have http access now:

git clone http://sources.obbligato.org/git/git.git
git pull origin subtree

I might need to fiddle with permissions, let me know.

                              -Dave

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

* Re: git-subtree Ready #2
  2012-02-11 17:35 git-subtree Ready #2 David A. Greene
@ 2012-02-11 18:03 ` Junio C Hamano
  2012-02-11 19:22   ` David A. Greene
  2012-02-15  4:30 ` David A. Greene
  1 sibling, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2012-02-11 18:03 UTC (permalink / raw)
  To: David A. Greene; +Cc: git

greened@obbligato.org (David A. Greene) writes:

> I might need to fiddle with permissions, let me know.

Everybody's client can talk smart http these days. Please don't
host/publish the code behind a dumb HTTP server.

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

* Re: git-subtree Ready #2
  2012-02-11 18:03 ` Junio C Hamano
@ 2012-02-11 19:22   ` David A. Greene
  0 siblings, 0 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-11 19:22 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> greened@obbligato.org (David A. Greene) writes:
>
>> I might need to fiddle with permissions, let me know.
>
> Everybody's client can talk smart http these days. Please don't
> host/publish the code behind a dumb HTTP server.

I'll have to learn how to set up a smart http.

In the meantime, this should also work:

git clone git://sources.obbligato.org/git/git.git

Or via gitweb:

http://sources.obbligato.org

                               -Dave

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

* Re: git-subtree Ready #2
  2012-02-11 17:35 git-subtree Ready #2 David A. Greene
  2012-02-11 18:03 ` Junio C Hamano
@ 2012-02-15  4:30 ` David A. Greene
  2012-02-15  5:08   ` Jeff King
  1 sibling, 1 reply; 28+ messages in thread
From: David A. Greene @ 2012-02-15  4:30 UTC (permalink / raw)
  To: git

greened@obbligato.org (David A. Greene) writes:

> [This bounced for some reason.]
>
> Ok, I have http access now:
>
> git clone http://sources.obbligato.org/git/git.git
> git pull origin subtree

Haven't heard anything lately so I want to make sure there's not an
access problem.

This is also available at:

git clone git://sources.obbligato.org/git/git.git

or by gitweb:

http://sources.obbligato.org

                          -Dave

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

* Re: git-subtree Ready #2
  2012-02-15  4:30 ` David A. Greene
@ 2012-02-15  5:08   ` Jeff King
  2012-02-15  5:31     ` David A. Greene
  0 siblings, 1 reply; 28+ messages in thread
From: Jeff King @ 2012-02-15  5:08 UTC (permalink / raw)
  To: David A. Greene; +Cc: git

On Tue, Feb 14, 2012 at 10:30:16PM -0600, David A. Greene wrote:

> This is also available at:
> 
> git clone git://sources.obbligato.org/git/git.git

Hmm. So it seems like a pretty straightforward subtree merge of
git-subtree. I can't say I'm super excited about having copied bits like
contrib/subtree/t/Makefile that are basically replicas of git's
t/Makefile.  But there's not that much of it, the cruft lives in
contrib, and there's really not a good solution short of actually making
git-subtree a first-class git command.

But more important than the physical layout is the maintenance plan
going forward.  Is Avery going to keep maintaining git-subtree, and we
will just occasionally pull? Are you maintaining it? Where will patches
go? To a github repo? To git@vger?

-Peff

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

* Re: git-subtree Ready #2
  2012-02-15  5:08   ` Jeff King
@ 2012-02-15  5:31     ` David A. Greene
  2012-02-16  4:07       ` David A. Greene
  0 siblings, 1 reply; 28+ messages in thread
From: David A. Greene @ 2012-02-15  5:31 UTC (permalink / raw)
  To: Jeff King; +Cc: git

Jeff King <peff@peff.net> writes:

> On Tue, Feb 14, 2012 at 10:30:16PM -0600, David A. Greene wrote:
>
>> This is also available at:
>> 
>> git clone git://sources.obbligato.org/git/git.git
>
> Hmm. So it seems like a pretty straightforward subtree merge of
> git-subtree. 

Yep.

> I can't say I'm super excited about having copied bits like
> contrib/subtree/t/Makefile that are basically replicas of git's
> t/Makefile.  

I know, I didn't like it either but could not think of a better way.

> But there's not that much of it, the cruft lives in contrib, and
> there's really not a good solution short of actually making
> git-subtree a first-class git command.

That's the conclusion I came to.  Moving it to a first-class command
should be pretty simple when the time comes.

> But more important than the physical layout is the maintenance plan
> going forward.  Is Avery going to keep maintaining git-subtree, and we
> will just occasionally pull? Are you maintaining it? Where will patches
> go? To a github repo? To git@vger?

I am still waiting to hear from Avery on that.  I will ping him again.
My intention is to certainly participate in maintenance.  I use
git-subtree daily so it's in my interest to keep it working.

I plan to send patcher to git@vger.  I don't think a pull would be
practical given the removal of redundant files and other things.

                           -Dave

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

* Re: git-subtree Ready #2
  2012-02-15  5:31     ` David A. Greene
@ 2012-02-16  4:07       ` David A. Greene
  2012-02-20 19:34         ` David A. Greene
  2012-02-20 20:53         ` Jeff King
  0 siblings, 2 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-16  4:07 UTC (permalink / raw)
  To: Jeff King; +Cc: git, Avery Pennarun

greened@obbligato.org (David A. Greene) writes:

>> But more important than the physical layout is the maintenance plan
>> going forward.  Is Avery going to keep maintaining git-subtree, and we
>> will just occasionally pull? Are you maintaining it? Where will patches
>> go? To a github repo? To git@vger?
>
> I am still waiting to hear from Avery on that.  I will ping him again.
> My intention is to certainly participate in maintenance.  I use
> git-subtree daily so it's in my interest to keep it working.

I've attached Avery's response below.  The short summary is that he
thinks maintaining it in the vger git repository is the way to go and
that he's fine moving patches to/from GitHub as necessary.

So again, I will certainly be part of the maintenance team.  There are a
few other people currently helping out with maintenance and I will help
Avery to get the word out about the switch as he requires.

                            -Dave

--8<-----------------------------------------------------------------------

Thanks for putting work into this.  You can feel free to cc: me on any
git-list discussions if you want.

I haven't done any significant amount of git-subtree maintenance lately,
but even if I did, since it's only one file it should be easy to put
move patches between github and git whenever we want.  I would suggest
that just maintaining it as part of git is the best way to go, since
having diverging versions doesn't really help anyone.

I'm sure the potential benefit of putting git-subtree in the contrib/
directory is that we could then use git-subtree to maintain the
git-subtree git subtree, which is a fun wordplay, but perhaps
ironically, as a single rarely-changing file, git-subtree is probably
not the right tool for these purposes :)

Have fun,

Avery

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

* Re: git-subtree Ready #2
  2012-02-16  4:07       ` David A. Greene
@ 2012-02-20 19:34         ` David A. Greene
  2012-02-20 20:53         ` Jeff King
  1 sibling, 0 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-20 19:34 UTC (permalink / raw)
  To: Jeff King; +Cc: git, Avery Pennarun

greened@obbligato.org (David A. Greene) writes:

> greened@obbligato.org (David A. Greene) writes:
>
>>> But more important than the physical layout is the maintenance plan
>>> going forward.  Is Avery going to keep maintaining git-subtree, and we
>>> will just occasionally pull? Are you maintaining it? Where will patches
>>> go? To a github repo? To git@vger?
>
> I've attached Avery's response below.  The short summary is that he
> thinks maintaining it in the vger git repository is the way to go and
> that he's fine moving patches to/from GitHub as necessary.

So what's the next step?  I guess one of the git maintaners will have to
do a pull and merge.  Anything I need to do on this end for that to
happen?

Thanks!

                             -Dave

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

* Re: git-subtree Ready #2
  2012-02-16  4:07       ` David A. Greene
  2012-02-20 19:34         ` David A. Greene
@ 2012-02-20 20:53         ` Jeff King
  2012-02-20 23:14           ` Junio C Hamano
  2012-02-21  5:31           ` David A. Greene
  1 sibling, 2 replies; 28+ messages in thread
From: Jeff King @ 2012-02-20 20:53 UTC (permalink / raw)
  To: David A. Greene; +Cc: git, Avery Pennarun

On Wed, Feb 15, 2012 at 10:07:16PM -0600, David A. Greene wrote:

> I've attached Avery's response below.  The short summary is that he
> thinks maintaining it in the vger git repository is the way to go and
> that he's fine moving patches to/from GitHub as necessary.
>
> [From Avery:]
>> I'm sure the potential benefit of putting git-subtree in the contrib/
>> directory is that we could then use git-subtree to maintain the
>> git-subtree git subtree, which is a fun wordplay, but perhaps
>> ironically, as a single rarely-changing file, git-subtree is probably
>> not the right tool for these purposes :)

I'm not a git-subtree user, nor am I the maintainer who would pull from
you. So I am somewhat on the sidelines of this particular discussion.

Usually we would incubate new and radically different commands in
contrib, and then if they prove to be good, make first-class commands of
them (e.g., git-new-workdir has been in contrib for a while, and as it
has proven itself to many people, there is talk of including it as a
core command).

My impression is that git-subtree has already done this incubation and
proving step in its own repository (but like I said, I do not use it
myself, so that is just going on list hearsay). So it seems like the
logical step would be to graduate into the main git repository.  And I
gather from Avery's response that he agrees.

Of course there's no real reason we can't take it slow by putting it in
contrib, and then graduating from there. It just seems like an
unnecessary and complicated interim step. Either way, I do think it's
worth saving the commit history by doing a real merge.

I dunno. It is really up to Junio, I guess. He usually relies on list
consensus for decisions like this, and there has not been that much
discussion. What do users of git-subtree think, as this would primarily
benefit them? And what do other members of the git@vger community who do
not use git-subtree think of the burden of carrying it as a first-class
command (not so much the burden of adding it, but of maintaining it,
fielding reports when it is broken, etc)?

As a non-user, I am totally fine with it. I think the burden is not that
high, and you have already promised to deal with ongoing maintenance
issues.

-Peff

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

* Re: git-subtree Ready #2
  2012-02-20 20:53         ` Jeff King
@ 2012-02-20 23:14           ` Junio C Hamano
  2012-02-21  5:37             ` David A. Greene
  2012-02-24  1:19             ` Avery Pennarun
  2012-02-21  5:31           ` David A. Greene
  1 sibling, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2012-02-20 23:14 UTC (permalink / raw)
  To: Jeff King; +Cc: David A. Greene, git, Avery Pennarun

Jeff King <peff@peff.net> writes:

> On Wed, Feb 15, 2012 at 10:07:16PM -0600, David A. Greene wrote:
> ...
> Of course there's no real reason we can't take it slow by putting it in
> contrib, and then graduating from there. It just seems like an
> unnecessary and complicated interim step. Either way, I do think it's
> worth saving the commit history by doing a real merge.
>
> I dunno. It is really up to Junio, I guess.

It sounds like the simplest and cleanest would be to treat it as if its
current version came as a patch submission, cook it just like any other
topic in 'pu' down to 'next' down to eventually 'master', with the usual
review cycle of pointing out what is wrong and needs fixing followed by a
series of re-rolls.

The total amount of change does not look too bad, either:

    $ git diff --stat master...origin/subtree
     contrib/subtree/.gitignore         |    5 +
     contrib/subtree/COPYING            |  339 +++++++++++++++++
     contrib/subtree/Makefile           |   45 +++
     contrib/subtree/README             |    8 +
     contrib/subtree/git-subtree.sh     |  712 ++++++++++++++++++++++++++++++++++++
     contrib/subtree/git-subtree.txt    |  366 ++++++++++++++++++
     contrib/subtree/t/Makefile         |   71 ++++
     contrib/subtree/t/t7900-subtree.sh |  508 +++++++++++++++++++++++++
     contrib/subtree/todo               |   50 +++
     t/test-lib.sh                      |   11 +-
     10 files changed, 2114 insertions(+), 1 deletion(-)

It does look like it needs to start its life in contrib/ if we were to put
this in git.git. I haven't looked at the script fully, but it has an issue
from its first line, which is marked with "#!/bin/bash".  It is unclear if
it is infested by bash-isms beyond repair (in which case "#!/bin/bash" is
fine), or it was written portably but was marked with "#!/bin/bash" just
by inertia.  A patch that corresponds to the above diffstat immediately
shows many style issues including trailing eye-sore whitespaces.

It seems that it is even capable of installing from contrib/subtree, so
keeping it in contrib/ while many issues it may have gets fixed would not
hurt the original goal of giving the script more visibility.

The change to t/test-lib.sh should be made independent of this topic, I
would think.

----------------------------------------------------------------
diff --git a/t/test-lib.sh b/t/test-lib.sh
index e28d5fd..c877a91 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -55,6 +55,7 @@ unset $(perl -e '
 		.*_TEST
 		PROVE
 		VALGRIND
+                BUILD_DIR
 	));
 	my @vars = grep(/^GIT_/ && !/^GIT_($ok)/o, @env);
 	print join("\n", @vars);
@@ -924,7 +925,15 @@ then
 	# itself.
 	TEST_DIRECTORY=$(pwd)
 fi
-GIT_BUILD_DIR="$TEST_DIRECTORY"/..
+
+if test -z "$GIT_BUILD_DIR"
+then
+    echo Here
+	# We allow tests to override this, in case they want to run tests
+	# outside of t/, e.g. for running tests on the test library
+	# itself.
+        GIT_BUILD_DIR="$TEST_DIRECTORY"/..
+fi
 
 if test -n "$valgrind"
 then
----------------------------------------------------------------
This change deserves its own justification.

After looking at the history of subtree branch there, however, I agree
that it would not help anybody to have its history in my tree with log
messages like these (excerpt from shortlog output):

      update todo
      Some todo items reported by pmccurdy
      todo
      Docs: when pushing to github, the repo path needs to end in .git
      todo
      todo^
      todo
      todo: idea for a 'git subtree grafts' command

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

* Re: git-subtree Ready #2
  2012-02-20 20:53         ` Jeff King
  2012-02-20 23:14           ` Junio C Hamano
@ 2012-02-21  5:31           ` David A. Greene
  1 sibling, 0 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-21  5:31 UTC (permalink / raw)
  To: Jeff King; +Cc: git, Avery Pennarun

Jeff King <peff@peff.net> writes:

> Of course there's no real reason we can't take it slow by putting it in
> contrib, and then graduating from there. It just seems like an
> unnecessary and complicated interim step. Either way, I do think it's
> worth saving the commit history by doing a real merge.

I have no problem starting off in contrib.  I was asking more about the
logistics of getting there.

> As a non-user, I am totally fine with it. I think the burden is not that
> high, and you have already promised to deal with ongoing maintenance
> issues.

Indeed, I'm more than happy to help with maintenance.  I have one or two
fixes/enhancements on my list, in fact.

                              -Dave

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

* Re: git-subtree Ready #2
  2012-02-20 23:14           ` Junio C Hamano
@ 2012-02-21  5:37             ` David A. Greene
  2012-02-21  6:34               ` Junio C Hamano
  2012-02-21  9:07               ` Thomas Rast
  2012-02-24  1:19             ` Avery Pennarun
  1 sibling, 2 replies; 28+ messages in thread
From: David A. Greene @ 2012-02-21  5:37 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Jeff King, git, Avery Pennarun

Junio C Hamano <gitster@pobox.com> writes:

> Jeff King <peff@peff.net> writes:
>
> It sounds like the simplest and cleanest would be to treat it as if its
> current version came as a patch submission, cook it just like any other
> topic in 'pu' down to 'next' down to eventually 'master', with the usual
> review cycle of pointing out what is wrong and needs fixing followed by a
> series of re-rolls.

Ok, but we will preserve the history via the subtree merge, yes?

> The total amount of change does not look too bad, either:

Yes, it's a fairly small tool.

> It does look like it needs to start its life in contrib/ if we were to put
> this in git.git. 

That sounds good to me.  It should get a good shakedown before graduating.

> I haven't looked at the script fully, but it has an issue from its
> first line, which is marked with "#!/bin/bash".  It is unclear if it
> is infested by bash-isms beyond repair (in which case "#!/bin/bash" is
> fine), or it was written portably but was marked with "#!/bin/bash"
> just by inertia.  A patch that corresponds to the above diffstat
> immediately shows many style issues including trailing eye-sore
> whitespaces.

Ok.

> It seems that it is even capable of installing from contrib/subtree, so
> keeping it in contrib/ while many issues it may have gets fixed would not
> hurt the original goal of giving the script more visibility.

Right, I intentially designed it that way.

> The change to t/test-lib.sh should be made independent of this topic, I
> would think.

Ok, I'll propose those changes separately.  They are a prerequisite for
a git-subtree that is easily testable while in contrib.

> ----------------------------------------------------------------
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index e28d5fd..c877a91 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -55,6 +55,7 @@ unset $(perl -e '
>  		.*_TEST
>  		PROVE
>  		VALGRIND
> +                BUILD_DIR
>  	));
>  	my @vars = grep(/^GIT_/ && !/^GIT_($ok)/o, @env);
>  	print join("\n", @vars);
> @@ -924,7 +925,15 @@ then
>  	# itself.
>  	TEST_DIRECTORY=$(pwd)
>  fi
> -GIT_BUILD_DIR="$TEST_DIRECTORY"/..
> +
> +if test -z "$GIT_BUILD_DIR"
> +then
> +    echo Here
> +	# We allow tests to override this, in case they want to run tests
> +	# outside of t/, e.g. for running tests on the test library
> +	# itself.
> +        GIT_BUILD_DIR="$TEST_DIRECTORY"/..
> +fi
>  
>  if test -n "$valgrind"
>  then
> ----------------------------------------------------------------
> This change deserves its own justification.

I'll put a patch together with a more extensive explanation.  Basically,
tests run outside of the top-level t/ directory don't work because there
are all sort of assumptions in test-lib.sh about where they live.  There
are comments in test-lib.sh indicating that it should support tests in
other directories but I could not make it work out of the box.

> After looking at the history of subtree branch there, however, I agree
> that it would not help anybody to have its history in my tree with log
> messages like these (excerpt from shortlog output):
>
>       update todo
>       Some todo items reported by pmccurdy
>       todo
>       Docs: when pushing to github, the repo path needs to end in .git
>       todo
>       todo^
>       todo
>       todo: idea for a 'git subtree grafts' command

Ok, these are Avery's commits.  I don't know that I have enough context
to improve the logs but I will look throught revisions and try to figure
things out.  Avery, could you be of any help here?  It sounds like we
need more descriptive log messages.

                               -Dave

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

* Re: git-subtree Ready #2
  2012-02-21  5:37             ` David A. Greene
@ 2012-02-21  6:34               ` Junio C Hamano
  2012-02-21  7:10                 ` Junio C Hamano
  2012-02-21  8:44                 ` Junio C Hamano
  2012-02-21  9:07               ` Thomas Rast
  1 sibling, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2012-02-21  6:34 UTC (permalink / raw)
  To: David A. Greene; +Cc: Jeff King, git, Avery Pennarun

greened@obbligato.org (David A. Greene) writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> Jeff King <peff@peff.net> writes:
>>
>> It sounds like the simplest and cleanest would be to treat it as if its
>> current version came as a patch submission, cook it just like any other
>> topic in 'pu' down to 'next' down to eventually 'master', with the usual
>> review cycle of pointing out what is wrong and needs fixing followed by a
>> series of re-rolls.
>
> Ok, but we will preserve the history via the subtree merge, yes?

I'll comment on just this part, but a short answer is "no, I do not think
so".

Even though you left "Jeff King writes", you removed everything he said
that I was quoting, and in order to understand why the answer is 'no', it
would have been better if you kept this part from what he said in your
reply:

>> ... Either way, I do think it's
>> worth saving the commit history by doing a real merge.

as that was what I was agreeing to with my "as if ... a patch submission".

>> After looking at the history of subtree branch there, however, I agree
>> that it would not help anybody to have its history in my tree with log
>> messages like these (excerpt from shortlog output):
>>
>>       update todo
>>       Some todo items reported by pmccurdy
>>       todo
>>       Docs: when pushing to github, the repo path needs to end in .git
>>       todo
>>       todo^
>>       todo
>>       todo: idea for a 'git subtree grafts' command
>
> Ok, these are Avery's commits.  I don't know that I have enough context
> to improve the logs but I will look throught revisions and try to figure
> things out.  Avery, could you be of any help here?  It sounds like we
> need more descriptive log messages.

That was not what I was suggesting.

I was saying that the history up to the current state, littered with these
commits that are not "logical progression" but merely "a snapshot of
then-current state" may not be worth preserving, with or without better
messages.

Rewriting the entire history to make it a logical progression just for the
sake of history is obviously not worth the effort.

Which suggests that taking the end result that exists at the tip of your
subtree branch as a single code-drop, without pulling its history, lets us
start from a reasonably well tested state and would not lose us anything
of value.  And that was what I was suggesting.  For our history to explain
why/how the code got there better, another approach might be to instead
treat your bd7b2cf (Add 'contrib/subtree/' from commit '2793ee6ba...',
2012-01-29), which is where you took Avery's then-current state, as the
code-drop event that adds everything in contrib/subtree/ with a single
patch submission. I.e. in a git.git repository:

	git checkout -b subtree master
	git fetch git://sources.obbligato.org/git/git.git subtree
        git merge --squash bd7b2cf
        git commit -m "contrib: add git-subtree from Avery's tree"

to take the tip of your subtree branch.  The history up to that point is
in Avery's repository where he stopped, which such an approach will not
pull in to git.git.  And then we can replay bd7b2cf..FETCH_HEAD like so:

	git checkout FETCH_HEAD
	git rebase --onto subtree bd7b2cf
	git push . HEAD:subtree
        git checkout pu
        git merge subtree

to preserve the history since that single code-drop event that records
your effort to adjust the code-dump into a better shape to live in our
contrib/ area.  That will make it clear the division of blame on the code
added to git.git between Avery (everything before the squashed merge) and
you (everything after that).

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

* Re: git-subtree Ready #2
  2012-02-21  6:34               ` Junio C Hamano
@ 2012-02-21  7:10                 ` Junio C Hamano
  2012-02-21  8:44                 ` Junio C Hamano
  1 sibling, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2012-02-21  7:10 UTC (permalink / raw)
  To: David A. Greene; +Cc: Jeff King, git, Avery Pennarun

Junio C Hamano <gitster@pobox.com> writes:

> greened@obbligato.org (David A. Greene) writes:
>
>> Junio C Hamano <gitster@pobox.com> writes:
>>
>>> Jeff King <peff@peff.net> writes:
>>>
>>> It sounds like the simplest and cleanest would be to treat it as if its
>>> current version came as a patch submission, cook it just like any other
>>> topic in 'pu' down to 'next' down to eventually 'master', with the usual
>>> review cycle of pointing out what is wrong and needs fixing followed by a
>>> series of re-rolls.
>>
>> Ok, but we will preserve the history via the subtree merge, yes?
>
> I'll comment on just this part, but a short answer is "no, I do not think
> so".
>
> Even though you left "Jeff King writes", you removed everything he said
> that I was quoting, and in order to understand why the answer is 'no', it
> would have been better if you kept this part from what he said in your
> reply:
>
>>> ... Either way, I do think it's
>>> worth saving the commit history by doing a real merge.
>
> as that was what I was agreeing to with my "as if ... a patch submission".

Ehh, s/agree/disagree/;

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

* Re: git-subtree Ready #2
  2012-02-21  6:34               ` Junio C Hamano
  2012-02-21  7:10                 ` Junio C Hamano
@ 2012-02-21  8:44                 ` Junio C Hamano
  1 sibling, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2012-02-21  8:44 UTC (permalink / raw)
  To: David A. Greene; +Cc: Jeff King, git, Avery Pennarun

Junio C Hamano <gitster@pobox.com> writes:

> greened@obbligato.org (David A. Greene) writes:
>
>> Ok, but we will preserve the history via the subtree merge, yes?
>
> I'll comment on just this part, but a short answer is "no, I do not think
> so".
> ...
> I was saying that the history up to the current state, littered with these
> commits that are not "logical progression" but merely "a snapshot of
> then-current state" may not be worth preserving, with or without better
> messages.
>
> Rewriting the entire history to make it a logical progression just for the
> sake of history is obviously not worth the effort.

Having said all that, my preference is not so strong to out-right veto
doing a true merge; I wouldn't lose sleep if we end up merging the tip of
your subtree branch with all the history behind it as-is.

BUT.

Even though I freely admit that I was the guilty one who came up with
"merge -s subtree", and Linus's "gitk merge" was the original sin, having
a subtree merge like gitk, git-gui and gitweb in the history is not
without downsides.

The most problematic one that we regularly suffer from is that the
commands in the log family cannot work well across a subtree merge with
pathspec limiting, e.g. "git log git-gui/po", and we have to resort to
something like:

    $ cd git-gui/po &&
      git rev-list --parents HEAD . |
      while read commit parent
      do
        git log --pretty=short $parent..$commit^2 -- :/po
      done | git shortlog -n -e

to achieve what should be a simple "git shortlog -n -e git-gui/po".  I
suspect that a subtree merge may also lead bisection into uninteresting
tangents as it joins otherwise disjoint history.

If we still have an active upstream that grows its history in a separate
repository, like gitk and git-gui do, we cannot avoid a subtree merge in
order to continue merging from them.  Because you seem to be taking over
and are going to maintain it as part of git.git proper, eventually aiming
to move it out of contrib/, it's just that I do not think it is worth the
trouble.

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

* Re: git-subtree Ready #2
  2012-02-21  5:37             ` David A. Greene
  2012-02-21  6:34               ` Junio C Hamano
@ 2012-02-21  9:07               ` Thomas Rast
  1 sibling, 0 replies; 28+ messages in thread
From: Thomas Rast @ 2012-02-21  9:07 UTC (permalink / raw)
  To: David A. Greene; +Cc: Junio C Hamano, Jeff King, git, Avery Pennarun

greened@obbligato.org (David A. Greene) writes:

>> -GIT_BUILD_DIR="$TEST_DIRECTORY"/..
>> +
>> +if test -z "$GIT_BUILD_DIR"
>> +then
>> +    echo Here
>> +	# We allow tests to override this, in case they want to run tests
>> +	# outside of t/, e.g. for running tests on the test library
>> +	# itself.
>> +        GIT_BUILD_DIR="$TEST_DIRECTORY"/..
>> +fi
>
> I'll put a patch together with a more extensive explanation.  Basically,
> tests run outside of the top-level t/ directory don't work because there
> are all sort of assumptions in test-lib.sh about where they live.  There
> are comments in test-lib.sh indicating that it should support tests in
> other directories but I could not make it work out of the box.

Note that this will conflict with tr/perftest, which is already in next.
It had a similar override, but then made do with the existing
GIT_TEST_INSTALLED facility.  I think you do need the above here,
because you are not sourcing test-lib from the directory where the test
lives.  It may then be cleaner to again use GIT_BUILD_DIR in
t/perf/perf-lib.sh since it does not require knowledge (outside of
test-lib) that $GIT_BUILD_DIR/bin-wrappers/ holds the binaries.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

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

* Re: git-subtree Ready #2
  2012-02-20 23:14           ` Junio C Hamano
  2012-02-21  5:37             ` David A. Greene
@ 2012-02-24  1:19             ` Avery Pennarun
  2012-02-24 20:56               ` Junio C Hamano
  1 sibling, 1 reply; 28+ messages in thread
From: Avery Pennarun @ 2012-02-24  1:19 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Jeff King, David A. Greene, git

On Mon, Feb 20, 2012 at 6:14 PM, Junio C Hamano <gitster@pobox.com> wrote:
> It sounds like the simplest and cleanest would be to treat it as if its
> current version came as a patch submission, cook it just like any other
> topic in 'pu' down to 'next' down to eventually 'master', with the usual
> review cycle of pointing out what is wrong and needs fixing followed by a
> series of re-rolls.

Yeah, my original intent with git-subtree was to one day submit it as
basically a single patch against git.  That's why I have some slightly
suspicious commit messages in there (though in my defense, I think
*most* of the commit messages are quite sensible :)).

> After looking at the history of subtree branch there, however, I agree
> that it would not help anybody to have its history in my tree with log
> messages like these (excerpt from shortlog output):
> [...]
>      Docs: when pushing to github, the repo path needs to end in .git
> [...]

That commit message in particular I thought was perfectly fine; it's
specifically a fix to the git-subtree docs to clarify a question from
an actual user.

Overall I agree that there's little benefit in preserving the history,
at least as far as I can see, *except* that some code changes were
submitted by people other than me and squashing those changes might
conceivably cause licensing confusion down the road.  It's probably a
fairly quick exercise with git-filter-branch to get rid of the more
egregious commit message problems, if that's what we want to do.  (In
particular, just expurgating the entire 'todo' file from the history
probably makes plenty of sense.)

There's no value I can see in being able to do future merges from
outside the tree, so a filter-branch or rebase before merging should
be pretty harmless.

> The total amount of change does not look too bad, either:
>
>    $ git diff --stat master...origin/subtree
>     contrib/subtree/.gitignore         |    5 +
>     contrib/subtree/COPYING            |  339 +++++++++++++++++
>     contrib/subtree/Makefile           |   45 +++
>     contrib/subtree/README             |    8 +
>     contrib/subtree/git-subtree.sh     |  712 ++++++++++++++++++++++++++++++++++++
>     contrib/subtree/git-subtree.txt    |  366 ++++++++++++++++++
>     contrib/subtree/t/Makefile         |   71 ++++
>     contrib/subtree/t/t7900-subtree.sh |  508 +++++++++++++++++++++++++
>     contrib/subtree/todo               |   50 +++
>     t/test-lib.sh                      |   11 +-
>     10 files changed, 2114 insertions(+), 1 deletion(-)

Note that COPYING, .gitignore, Makefile, t/Makefile, todo, and README
should probably be ditched if it weren't going into contrib.  The
interesting files are git-subtree.{sh,txt} and t7900-subtree.sh.

> I haven't looked at the script fully, but it has an issue
> from its first line, which is marked with "#!/bin/bash".  It is unclear if
> it is infested by bash-isms beyond repair (in which case "#!/bin/bash" is
> fine), or it was written portably but was marked with "#!/bin/bash" just
> by inertia.

I'm generally pretty careful to avoid bashisms, but since my /bin/sh
is bash, I usually mark scripts with /bin/bash just to be safe until
someone has actually verified them with a non-bash shell.  I expect
few if any problems with that part.

> A patch that corresponds to the above diffstat immediately
> shows many style issues including trailing eye-sore whitespaces.
>
> It seems that it is even capable of installing from contrib/subtree, so
> keeping it in contrib/ while many issues it may have gets fixed would not
> hurt the original goal of giving the script more visibility.

Personally, I would prefer to just iterate the patch a few times to
correct the coding style problems you see, rather than merging into
contrib where it might be forgotten rather than fixed.  As Peff
alluded, people who want to install it separately from git already
can; if we're going to merge it into git, let's do it right.

Have fun,

AVery

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

* Re: git-subtree Ready #2
  2012-02-24  1:19             ` Avery Pennarun
@ 2012-02-24 20:56               ` Junio C Hamano
  2012-02-24 23:57                 ` Avery Pennarun
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2012-02-24 20:56 UTC (permalink / raw)
  To: Avery Pennarun; +Cc: Jeff King, David A. Greene, git

Avery Pennarun <apenwarr@gmail.com> writes:

> Overall I agree that there's little benefit in preserving the history,
> at least as far as I can see, *except* that some code changes were
> submitted by people other than me and squashing those changes might
> conceivably cause licensing confusion down the road.

That is a good point, and it sounds like a good enough justification to
merge with history, at least for me.

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

* Re: git-subtree Ready #2
  2012-02-24 20:56               ` Junio C Hamano
@ 2012-02-24 23:57                 ` Avery Pennarun
  2012-02-25  5:00                   ` David A. Greene
  0 siblings, 1 reply; 28+ messages in thread
From: Avery Pennarun @ 2012-02-24 23:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Jeff King, David A. Greene, git

On Fri, Feb 24, 2012 at 3:56 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Avery Pennarun <apenwarr@gmail.com> writes:
>> Overall I agree that there's little benefit in preserving the history,
>> at least as far as I can see, *except* that some code changes were
>> submitted by people other than me and squashing those changes might
>> conceivably cause licensing confusion down the road.
>
> That is a good point, and it sounds like a good enough justification to
> merge with history, at least for me.

Should we filter-branch or rebase the history first, or just leave it as is?

Like I said, since I don't expect there to be any more back-and-forth
development, rebasing should be pretty harmless.

Avery

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

* Re: git-subtree Ready #2
  2012-02-24 23:57                 ` Avery Pennarun
@ 2012-02-25  5:00                   ` David A. Greene
  2012-02-25  9:00                     ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: David A. Greene @ 2012-02-25  5:00 UTC (permalink / raw)
  To: Avery Pennarun; +Cc: Junio C Hamano, Jeff King, git

Avery Pennarun <apenwarr@gmail.com> writes:

> On Fri, Feb 24, 2012 at 3:56 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Avery Pennarun <apenwarr@gmail.com> writes:
>>> Overall I agree that there's little benefit in preserving the history,
>>> at least as far as I can see, *except* that some code changes were
>>> submitted by people other than me and squashing those changes might
>>> conceivably cause licensing confusion down the road.
>>
>> That is a good point, and it sounds like a good enough justification to
>> merge with history, at least for me.
>
> Should we filter-branch or rebase the history first, or just leave it as is?
>
> Like I said, since I don't expect there to be any more back-and-forth
> development, rebasing should be pretty harmless.

Catching up on e-mail.  :)

I'm happy to do either (rebase or filter-branch).  Just let me know.
I'm about the send the test-lib.sh patch separately as it's a prereq for
putting git-subtrees tests in contrib and I think it's generally useful
anyway.

                           -Dave

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

* Re: git-subtree Ready #2
  2012-02-25  5:00                   ` David A. Greene
@ 2012-02-25  9:00                     ` Junio C Hamano
  2012-02-25 15:00                       ` David A. Greene
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2012-02-25  9:00 UTC (permalink / raw)
  To: David A. Greene; +Cc: Avery Pennarun, Jeff King, git

greened@obbligato.org (David A. Greene) writes:

> Avery Pennarun <apenwarr@gmail.com> writes:
>
>> Should we filter-branch or rebase the history first, or just leave it as is?
>>
>> Like I said, since I don't expect there to be any more back-and-forth
>> development, rebasing should be pretty harmless.
>
> Catching up on e-mail.  :)
>
> I'm happy to do either (rebase or filter-branch).  Just let me know.

I would understand Avery's "should we filter-branch/rebase, or is it OK
as-is?", but I do not understand what you mean by "either rebase or
filter-branch is fine".

> I'm about the send the test-lib.sh patch separately...

Thanks, this I understand and should not be a part of git-subtree topic.

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

* Re: git-subtree Ready #2
  2012-02-25  9:00                     ` Junio C Hamano
@ 2012-02-25 15:00                       ` David A. Greene
  2012-02-27 21:06                         ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: David A. Greene @ 2012-02-25 15:00 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Avery Pennarun, Jeff King, git

Junio C Hamano <gitster@pobox.com> writes:

>> I'm happy to do either (rebase or filter-branch).  Just let me know.
>
> I would understand Avery's "should we filter-branch/rebase, or is it OK
> as-is?", but I do not understand what you mean by "either rebase or
> filter-branch is fine".

Sorry, got mixed up there.  I'm not that familiar with filter-branch.
Now I understand you do both.  :)

So have we decided to keep the history?

                                 -Dave

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

* Re: git-subtree Ready #2
  2012-02-25 15:00                       ` David A. Greene
@ 2012-02-27 21:06                         ` Junio C Hamano
  2012-02-27 21:21                           ` Jeff King
  2012-03-02  3:42                           ` David A. Greene
  0 siblings, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2012-02-27 21:06 UTC (permalink / raw)
  To: David A. Greene; +Cc: Avery Pennarun, Jeff King, git

greened@obbligato.org (David A. Greene) writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>>> I'm happy to do either (rebase or filter-branch).  Just let me know.
>>
>> I would understand Avery's "should we filter-branch/rebase, or is it OK
>> as-is?", but I do not understand what you mean by "either rebase or
>> filter-branch is fine".
>
> Sorry, got mixed up there.  I'm not that familiar with filter-branch.
> Now I understand you do both.  :)
>
> So have we decided to keep the history?

I think the discussion so far was:

 - Peff suggested to keep the history with a true merge;

 - I said the history before the final commit in Avery's tree did not look
   so useful for future archaeology; and then

 - Avery corrected me that there are contributions by other people and the
   credits will be lost if we discarded the history;

and everybody (including me) now favors to have the history.

So the answer to your question is yes, but I do not think we heard opinion
from anybody regarding the question by Avery yet.  I personally do not see
how it would help us if the old history is rewritten at this point.

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

* Re: git-subtree Ready #2
  2012-02-27 21:06                         ` Junio C Hamano
@ 2012-02-27 21:21                           ` Jeff King
  2012-02-27 21:23                             ` Jeff King
  2012-02-28  2:04                             ` Jakub Narebski
  2012-03-02  3:42                           ` David A. Greene
  1 sibling, 2 replies; 28+ messages in thread
From: Jeff King @ 2012-02-27 21:21 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: David A. Greene, Avery Pennarun, git

On Mon, Feb 27, 2012 at 01:06:02PM -0800, Junio C Hamano wrote:

> >>> I'm happy to do either (rebase or filter-branch).  Just let me know.
> >>
> >> I would understand Avery's "should we filter-branch/rebase, or is it OK
> >> as-is?", but I do not understand what you mean by "either rebase or
> >> filter-branch is fine".
> >
> > Sorry, got mixed up there.  I'm not that familiar with filter-branch.
> > Now I understand you do both.  :)
> >
> > So have we decided to keep the history?
> 
> I think the discussion so far was:
> 
>  - Peff suggested to keep the history with a true merge;
> 
>  - I said the history before the final commit in Avery's tree did not look
>    so useful for future archaeology; and then
> 
>  - Avery corrected me that there are contributions by other people and the
>    credits will be lost if we discarded the history;
> 
> and everybody (including me) now favors to have the history.
> 
> So the answer to your question is yes, but I do not think we heard opinion
> from anybody regarding the question by Avery yet.  I personally do not see
> how it would help us if the old history is rewritten at this point.

Yeah, I don't see much point in rewriting. If parts of the history suck,
then so be it.  It's probably not that big to store. And while it's
sometimes easier to fix bad commit messages when they are recent and in
your memory (rather than trying to remember later what you meant to
say), I think it is already too late for that. Any archaeology you do
now to make good commit messages could probably just as easily be done
if and when somebody actually needs the commit message later (emphasis
on the "if" -- it's likely that nobody will care about most of the
commit messages later at all).

-Peff

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

* Re: git-subtree Ready #2
  2012-02-27 21:21                           ` Jeff King
@ 2012-02-27 21:23                             ` Jeff King
  2012-02-28  2:04                             ` Jakub Narebski
  1 sibling, 0 replies; 28+ messages in thread
From: Jeff King @ 2012-02-27 21:23 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: David A. Greene, Avery Pennarun, git

On Mon, Feb 27, 2012 at 04:21:57PM -0500, Jeff King wrote:

> > So the answer to your question is yes, but I do not think we heard opinion
> > from anybody regarding the question by Avery yet.  I personally do not see
> > how it would help us if the old history is rewritten at this point.
> 
> Yeah, I don't see much point in rewriting. If parts of the history suck,
> then so be it.  It's probably not that big to store. And while it's
> sometimes easier to fix bad commit messages when they are recent and in
> your memory (rather than trying to remember later what you meant to
> say), I think it is already too late for that. Any archaeology you do
> now to make good commit messages could probably just as easily be done
> if and when somebody actually needs the commit message later (emphasis
> on the "if" -- it's likely that nobody will care about most of the
> commit messages later at all).

Sorry, the "you" there is meant to be David. Forgot who I was responding
to for a minute.

-Peff

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

* Re: git-subtree Ready #2
  2012-02-27 21:21                           ` Jeff King
  2012-02-27 21:23                             ` Jeff King
@ 2012-02-28  2:04                             ` Jakub Narebski
  2012-02-28 22:42                               ` Avery Pennarun
  1 sibling, 1 reply; 28+ messages in thread
From: Jakub Narebski @ 2012-02-28  2:04 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, David A. Greene, Avery Pennarun, git

Jeff King <peff@peff.net> writes:

> 
> Yeah, I don't see much point in rewriting. If parts of the history suck,
> then so be it.  It's probably not that big to store. And while it's
> sometimes easier to fix bad commit messages when they are recent and in
> your memory (rather than trying to remember later what you meant to
> say), I think it is already too late for that. Any archaeology you do
> now to make good commit messages could probably just as easily be done
> if and when somebody actually needs the commit message later (emphasis
> on the "if" -- it's likely that nobody will care about most of the
> commit messages later at all).

Anyway we already have subtree merges if subsystem with bad error
messages -- see gitweb.
-- 
Jakub Narebski

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

* Re: git-subtree Ready #2
  2012-02-28  2:04                             ` Jakub Narebski
@ 2012-02-28 22:42                               ` Avery Pennarun
  0 siblings, 0 replies; 28+ messages in thread
From: Avery Pennarun @ 2012-02-28 22:42 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: Jeff King, Junio C Hamano, David A. Greene, git

On Mon, Feb 27, 2012 at 9:04 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> Jeff King <peff@peff.net> writes:
>> Yeah, I don't see much point in rewriting. If parts of the history suck,
>> then so be it.  It's probably not that big to store. And while it's
>> sometimes easier to fix bad commit messages when they are recent and in
>> your memory (rather than trying to remember later what you meant to
>> say), I think it is already too late for that. Any archaeology you do
>> now to make good commit messages could probably just as easily be done
>> if and when somebody actually needs the commit message later (emphasis
>> on the "if" -- it's likely that nobody will care about most of the
>> commit messages later at all).
>
> Anyway we already have subtree merges if subsystem with bad error
> messages -- see gitweb.

So be it then!  May my lame commit messages persist forever!  As if I
don't have enough embarrassing stuff on the Internet.

(Personally I think the vast majority of the commit messages are
perfectly fine, and the ones that aren't generally describe boring
commits anyway, like changes to the 'todo' file.)

Have fun,

Avery

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

* Re: git-subtree Ready #2
  2012-02-27 21:06                         ` Junio C Hamano
  2012-02-27 21:21                           ` Jeff King
@ 2012-03-02  3:42                           ` David A. Greene
  1 sibling, 0 replies; 28+ messages in thread
From: David A. Greene @ 2012-03-02  3:42 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Avery Pennarun, Jeff King, git

Junio C Hamano <gitster@pobox.com> writes:

> and everybody (including me) now favors to have the history.
>
> So the answer to your question is yes, but I do not think we heard opinion
> from anybody regarding the question by Avery yet.  I personally do not see
> how it would help us if the old history is rewritten at this point.

Looks like eveyone's on board to keep the history as-is.  I cleaned a
few things up and will re-post the subtree once the test-lib.sh 
changes go through.

                        -Dave

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

end of thread, other threads:[~2012-03-02  3:45 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-11 17:35 git-subtree Ready #2 David A. Greene
2012-02-11 18:03 ` Junio C Hamano
2012-02-11 19:22   ` David A. Greene
2012-02-15  4:30 ` David A. Greene
2012-02-15  5:08   ` Jeff King
2012-02-15  5:31     ` David A. Greene
2012-02-16  4:07       ` David A. Greene
2012-02-20 19:34         ` David A. Greene
2012-02-20 20:53         ` Jeff King
2012-02-20 23:14           ` Junio C Hamano
2012-02-21  5:37             ` David A. Greene
2012-02-21  6:34               ` Junio C Hamano
2012-02-21  7:10                 ` Junio C Hamano
2012-02-21  8:44                 ` Junio C Hamano
2012-02-21  9:07               ` Thomas Rast
2012-02-24  1:19             ` Avery Pennarun
2012-02-24 20:56               ` Junio C Hamano
2012-02-24 23:57                 ` Avery Pennarun
2012-02-25  5:00                   ` David A. Greene
2012-02-25  9:00                     ` Junio C Hamano
2012-02-25 15:00                       ` David A. Greene
2012-02-27 21:06                         ` Junio C Hamano
2012-02-27 21:21                           ` Jeff King
2012-02-27 21:23                             ` Jeff King
2012-02-28  2:04                             ` Jakub Narebski
2012-02-28 22:42                               ` Avery Pennarun
2012-03-02  3:42                           ` David A. Greene
2012-02-21  5:31           ` David A. Greene

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.