threads / announce / 21187

[ANNOUNCE] GIT 1.6.5

Subject: [ANNOUNCE] GIT 1.6.5

## tl;dr

18 messages between Oct 11, 2009 and Oct 21, 2009.

replies: 17people: 7as markdown or json

Junio C Hamano· Oct 11, 2009, 08:40 UTC · lore

The latest feature release GIT 1.6.5 is available at the usual places:

  http://www.kernel.org/pub/software/scm/git/
  git-1.6.5.tar.{gz,bz2}			(source tarball)
  git-htmldocs-1.6.5.tar.{gz,bz2}		(preformatted docs)
  git-manpages-1.6.5.tar.{gz,bz2}		(preformatted docs)
The RPM binary packages for a few architectures are found in:
  RPMS/$arch/git-*-1.6.5-1.fc9.$arch.rpm	(RPM)

This cycle took a bit longer than I hoped, but here it is. We already have some new features cooking in 'next', and I expect we may be able to have 1.6.6 by the end of the year.

Enjoy.
----------------------------------------------------------------

GIT v1.6.5 Release Notes ========================

In git 1.7.0, which was planned to be the release after 1.6.5, "git push" into a branch that is currently checked out will be refused by default.

You can choose what should happen upon such a push by setting the configuration variable receive.denyCurrentBranch in the receiving repository.

Also, "git push $there :$killed" to delete the branch $killed in a remote repository $there, when $killed branch is the current branch pointed at by its HEAD, will be refused by default.

You can choose what should happen upon such a push by setting the configuration variable receive.denyDeleteCurrent in the receiving repository.

To ease the transition plan, the receiving repository of such a push running this release will issue a big warning when the configuration variable is missing. Please refer to:

  http://git.or.cz/gitwiki/GitFaq#non-bare
  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007

for more details on the reason why this change is needed and the transition plan.

Updates since v1.6.4 --------------------

(subsystems)
 * various updates to gitk, git-svn and gitweb.
(portability)
 * more improvements on mingw port.
 * mingw will also give FRSX as the default value for the LESS
   environment variable when the user does not have one.
 * initial support to compile git on Windows with MSVC.
(performance)
 * On major platforms, the system can be compiled to use with Linus's
   block-sha1 implementation of the SHA-1 hash algorithm, which
   outperforms the default fallback implementation we borrowed from
   Mozilla.
 * Unnecessary inefficiency in deepening of a shallow repository has
   been removed.
 * "git clone" does not grab objects that it does not need (i.e.
   referenced only from refs outside refs/heads and refs/tags
   hierarchy) anymore.
 * The "git" main binary used to link with libcurl, which then dragged
   in a large number of external libraries.  When using basic plumbing
   commands in scripts, this unnecessarily slowed things down.  We now
   implement http/https/ftp transfer as a separate executable as we
   used to.
 * "git clone" run locally hardlinks or copies the files in .git/ to
   newly created repository.  It used to give new mtime to copied files,
   but this delayed garbage collection to trigger unnecessarily in the
   cloned repository.  We now preserve mtime for these files to avoid
   this issue.
(usability, bells and whistles)
 * Human writable date format to various options, e.g. --since=yesterday,
   master@{2000.09.17}, are taught to infer some omitted input properly.
 * A few programs gave verbose "advice" messages to help uninitiated
   people when issuing error messages.  An infrastructure to allow
   users to squelch them has been introduced, and a few such messages
   can be silenced now.
 * refs/replace/ hierarchy is designed to be usable as a replacement
   of the "grafts" mechanism, with the added advantage that it can be
   transferred across repositories.
 * "git am" learned to optionally ignore whitespace differences.
 * "git am" handles input e-mail files that has CRLF line endings sensibly.
 * "git am" learned "--scissors" option to allow you to discard early part
   of an incoming e-mail.
 * "git archive -o output.zip" works without being told what format to
   use with an explicit "--format=zip".option.
 * "git checkout", "git reset" and "git stash" learned to pick and
   choose to use selected changes you made, similar to "git add -p".
 * "git clone" learned a "-b" option to pick a HEAD to check out
   different from the remote's default branch.
 * "git clone" learned --recursive option.
 * "git clone" from a local repository on a different filesystem used to
   copy individual object files without preserving the old timestamp, giving
   them extra lifetime in the new repository until they gc'ed.
 * "git commit --dry-run $args" is a new recommended way to ask "what would
   happen if I try to commit with these arguments."
 * "git commit --dry-run" and "git status" shows conflicted paths in a
   separate section to make them easier to spot during a merge.
 * "git cvsimport" now supports password-protected pserver access even
   when the password is not taken from ~/.cvspass file.
 * "git fast-export" learned --no-data option that can be useful when
   reordering commits and trees without touching the contents of
   blobs.
 * "git fast-import" has a pair of new front-end in contrib/ area.
 * "git init" learned to mkdir/chdir into a directory when given an
   extra argument (i.e. "git init this").
 * "git instaweb" optionally can use mongoose as the web server.
 * "git log --decorate" can optionally be told with --decorate=full to
   give the reference name in full.
 * "git merge" issued an unnecessarily scary message when it detected
   that the merge may have to touch the path that the user has local
   uncommitted changes to. The message has been reworded to make it
   clear that the command aborted, without doing any harm.
 * "git push" can be told to be --quiet.
 * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
   that is derived from the URL used for fetching.
 * informational output from "git reset" that lists the locally modified
   paths is made consistent with that of "git checkout $another_branch".
 * "git submodule" learned to give submodule name to scripts run with
   "foreach" subcommand.
 * various subcommands to "git submodule" learned --recursive option.
 * "git submodule summary" learned --files option to compare the work
   tree vs the commit bound at submodule path, instead of comparing
   the index.
 * "git upload-pack", which is the server side support for "git clone" and
   "git fetch", can call a new post-upload-pack hook for statistics purposes.
(developers)
 * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
   source directory; using tmpfs may give faster turnaround.
 * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
   build for one location, and install into another location to tar it
   up.

Fixes since v1.6.4 ------------------

All of the fixes in v1.6.4.X maintenance series are included in this release, unless otherwise noted.

Steven Noonan· Oct 11, 2009, 16:30 UTC · re: Junio C Hamano · lore

Re: [ANNOUNCE] GIT 1.6.5

Uh-oh.

Alcarin:crisscross steven$ git remote update Updating origin fatal: 'git@github.com/tycho/crisscross.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly error: Could not fetch origin

Alcarin:crisscross steven$ nano -w .git/config Alcarin:crisscross steven$ git remote update Updating origin

The 'ssh://' part is omitted in numerous places on github.com. I realize github.com isn't the final authority on the syntax of the URI, but was this an intentional change or a regression?

- Steven
On Sun, Oct 11, 2009 at 1:40 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 195 quoted lines
> The latest feature release GIT 1.6.5 is available at the usual
> places:
>
>  http://www.kernel.org/pub/software/scm/git/
>
>  git-1.6.5.tar.{gz,bz2}                        (source tarball)
>  git-htmldocs-1.6.5.tar.{gz,bz2}               (preformatted docs)
>  git-manpages-1.6.5.tar.{gz,bz2}               (preformatted docs)
>
> The RPM binary packages for a few architectures are found in:
>
>  RPMS/$arch/git-*-1.6.5-1.fc9.$arch.rpm        (RPM)
>
> This cycle took a bit longer than I hoped, but here it is.  We already
> have some new features cooking in 'next', and I expect we may be able to
> have 1.6.6 by the end of the year.
>
> Enjoy.
>
> ----------------------------------------------------------------
>
> GIT v1.6.5 Release Notes
> ========================
>
> In git 1.7.0, which was planned to be the release after 1.6.5, "git
> push" into a branch that is currently checked out will be refused by
> default.
>
> You can choose what should happen upon such a push by setting the
> configuration variable receive.denyCurrentBranch in the receiving
> repository.
>
> Also, "git push $there :$killed" to delete the branch $killed in a remote
> repository $there, when $killed branch is the current branch pointed at by
> its HEAD, will be refused by default.
>
> You can choose what should happen upon such a push by setting the
> configuration variable receive.denyDeleteCurrent in the receiving
> repository.
>
> To ease the transition plan, the receiving repository of such a
> push running this release will issue a big warning when the
> configuration variable is missing.  Please refer to:
>
>  http://git.or.cz/gitwiki/GitFaq#non-bare
>  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
>
> for more details on the reason why this change is needed and the
> transition plan.
>
> Updates since v1.6.4
> --------------------
>
> (subsystems)
>
>  * various updates to gitk, git-svn and gitweb.
>
> (portability)
>
>  * more improvements on mingw port.
>
>  * mingw will also give FRSX as the default value for the LESS
>   environment variable when the user does not have one.
>
>  * initial support to compile git on Windows with MSVC.
>
> (performance)
>
>  * On major platforms, the system can be compiled to use with Linus's
>   block-sha1 implementation of the SHA-1 hash algorithm, which
>   outperforms the default fallback implementation we borrowed from
>   Mozilla.
>
>  * Unnecessary inefficiency in deepening of a shallow repository has
>   been removed.
>
>  * "git clone" does not grab objects that it does not need (i.e.
>   referenced only from refs outside refs/heads and refs/tags
>   hierarchy) anymore.
>
>  * The "git" main binary used to link with libcurl, which then dragged
>   in a large number of external libraries.  When using basic plumbing
>   commands in scripts, this unnecessarily slowed things down.  We now
>   implement http/https/ftp transfer as a separate executable as we
>   used to.
>
>  * "git clone" run locally hardlinks or copies the files in .git/ to
>   newly created repository.  It used to give new mtime to copied files,
>   but this delayed garbage collection to trigger unnecessarily in the
>   cloned repository.  We now preserve mtime for these files to avoid
>   this issue.
>
> (usability, bells and whistles)
>
>  * Human writable date format to various options, e.g. --since=yesterday,
>   master@{2000.09.17}, are taught to infer some omitted input properly.
>
>  * A few programs gave verbose "advice" messages to help uninitiated
>   people when issuing error messages.  An infrastructure to allow
>   users to squelch them has been introduced, and a few such messages
>   can be silenced now.
>
>  * refs/replace/ hierarchy is designed to be usable as a replacement
>   of the "grafts" mechanism, with the added advantage that it can be
>   transferred across repositories.
>
>  * "git am" learned to optionally ignore whitespace differences.
>
>  * "git am" handles input e-mail files that has CRLF line endings sensibly.
>
>  * "git am" learned "--scissors" option to allow you to discard early part
>   of an incoming e-mail.
>
>  * "git archive -o output.zip" works without being told what format to
>   use with an explicit "--format=zip".option.
>
>  * "git checkout", "git reset" and "git stash" learned to pick and
>   choose to use selected changes you made, similar to "git add -p".
>
>  * "git clone" learned a "-b" option to pick a HEAD to check out
>   different from the remote's default branch.
>
>  * "git clone" learned --recursive option.
>
>  * "git clone" from a local repository on a different filesystem used to
>   copy individual object files without preserving the old timestamp, giving
>   them extra lifetime in the new repository until they gc'ed.
>
>  * "git commit --dry-run $args" is a new recommended way to ask "what would
>   happen if I try to commit with these arguments."
>
>  * "git commit --dry-run" and "git status" shows conflicted paths in a
>   separate section to make them easier to spot during a merge.
>
>  * "git cvsimport" now supports password-protected pserver access even
>   when the password is not taken from ~/.cvspass file.
>
>  * "git fast-export" learned --no-data option that can be useful when
>   reordering commits and trees without touching the contents of
>   blobs.
>
>  * "git fast-import" has a pair of new front-end in contrib/ area.
>
>  * "git init" learned to mkdir/chdir into a directory when given an
>   extra argument (i.e. "git init this").
>
>  * "git instaweb" optionally can use mongoose as the web server.
>
>  * "git log --decorate" can optionally be told with --decorate=full to
>   give the reference name in full.
>
>  * "git merge" issued an unnecessarily scary message when it detected
>   that the merge may have to touch the path that the user has local
>   uncommitted changes to. The message has been reworded to make it
>   clear that the command aborted, without doing any harm.
>
>  * "git push" can be told to be --quiet.
>
>  * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
>   that is derived from the URL used for fetching.
>
>  * informational output from "git reset" that lists the locally modified
>   paths is made consistent with that of "git checkout $another_branch".
>
>  * "git submodule" learned to give submodule name to scripts run with
>   "foreach" subcommand.
>
>  * various subcommands to "git submodule" learned --recursive option.
>
>  * "git submodule summary" learned --files option to compare the work
>   tree vs the commit bound at submodule path, instead of comparing
>   the index.
>
>  * "git upload-pack", which is the server side support for "git clone" and
>   "git fetch", can call a new post-upload-pack hook for statistics purposes.
>
> (developers)
>
>  * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
>   source directory; using tmpfs may give faster turnaround.
>
>  * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
>   build for one location, and install into another location to tar it
>   up.
>
> Fixes since v1.6.4
> ------------------
>
> All of the fixes in v1.6.4.X maintenance series are included in this
> release, unless otherwise noted.
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Steven Noonan· Oct 11, 2009, 16:30 UTC · re: Steven Noonan · lore

Re: [ANNOUNCE] GIT 1.6.5

On Sun, Oct 11, 2009 at 9:30 AM, Steven Noonan <steven@uplinklabs.net> wrote:
Show 12 quoted lines
> Uh-oh.
>
> Alcarin:crisscross steven$ git remote update
> Updating origin
> fatal: 'git@github.com/tycho/crisscross.git' does not appear to be a
> git repository
> fatal: The remote end hung up unexpectedly
> error: Could not fetch origin
>
> Alcarin:crisscross steven$ nano -w .git/config
> Alcarin:crisscross steven$ git remote update
> Updating origin

Er, meant to say before this that I edited the URI to include the 'ssh://' and then it worked fine.

Show 204 quoted lines
>
> The 'ssh://' part is omitted in numerous places on github.com. I
> realize github.com isn't the final authority on the syntax of the URI,
> but was this an intentional change or a regression?
>
> - Steven
>
> On Sun, Oct 11, 2009 at 1:40 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> The latest feature release GIT 1.6.5 is available at the usual
>> places:
>>
>>  http://www.kernel.org/pub/software/scm/git/
>>
>>  git-1.6.5.tar.{gz,bz2}                        (source tarball)
>>  git-htmldocs-1.6.5.tar.{gz,bz2}               (preformatted docs)
>>  git-manpages-1.6.5.tar.{gz,bz2}               (preformatted docs)
>>
>> The RPM binary packages for a few architectures are found in:
>>
>>  RPMS/$arch/git-*-1.6.5-1.fc9.$arch.rpm        (RPM)
>>
>> This cycle took a bit longer than I hoped, but here it is.  We already
>> have some new features cooking in 'next', and I expect we may be able to
>> have 1.6.6 by the end of the year.
>>
>> Enjoy.
>>
>> ----------------------------------------------------------------
>>
>> GIT v1.6.5 Release Notes
>> ========================
>>
>> In git 1.7.0, which was planned to be the release after 1.6.5, "git
>> push" into a branch that is currently checked out will be refused by
>> default.
>>
>> You can choose what should happen upon such a push by setting the
>> configuration variable receive.denyCurrentBranch in the receiving
>> repository.
>>
>> Also, "git push $there :$killed" to delete the branch $killed in a remote
>> repository $there, when $killed branch is the current branch pointed at by
>> its HEAD, will be refused by default.
>>
>> You can choose what should happen upon such a push by setting the
>> configuration variable receive.denyDeleteCurrent in the receiving
>> repository.
>>
>> To ease the transition plan, the receiving repository of such a
>> push running this release will issue a big warning when the
>> configuration variable is missing.  Please refer to:
>>
>>  http://git.or.cz/gitwiki/GitFaq#non-bare
>>  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
>>
>> for more details on the reason why this change is needed and the
>> transition plan.
>>
>> Updates since v1.6.4
>> --------------------
>>
>> (subsystems)
>>
>>  * various updates to gitk, git-svn and gitweb.
>>
>> (portability)
>>
>>  * more improvements on mingw port.
>>
>>  * mingw will also give FRSX as the default value for the LESS
>>   environment variable when the user does not have one.
>>
>>  * initial support to compile git on Windows with MSVC.
>>
>> (performance)
>>
>>  * On major platforms, the system can be compiled to use with Linus's
>>   block-sha1 implementation of the SHA-1 hash algorithm, which
>>   outperforms the default fallback implementation we borrowed from
>>   Mozilla.
>>
>>  * Unnecessary inefficiency in deepening of a shallow repository has
>>   been removed.
>>
>>  * "git clone" does not grab objects that it does not need (i.e.
>>   referenced only from refs outside refs/heads and refs/tags
>>   hierarchy) anymore.
>>
>>  * The "git" main binary used to link with libcurl, which then dragged
>>   in a large number of external libraries.  When using basic plumbing
>>   commands in scripts, this unnecessarily slowed things down.  We now
>>   implement http/https/ftp transfer as a separate executable as we
>>   used to.
>>
>>  * "git clone" run locally hardlinks or copies the files in .git/ to
>>   newly created repository.  It used to give new mtime to copied files,
>>   but this delayed garbage collection to trigger unnecessarily in the
>>   cloned repository.  We now preserve mtime for these files to avoid
>>   this issue.
>>
>> (usability, bells and whistles)
>>
>>  * Human writable date format to various options, e.g. --since=yesterday,
>>   master@{2000.09.17}, are taught to infer some omitted input properly.
>>
>>  * A few programs gave verbose "advice" messages to help uninitiated
>>   people when issuing error messages.  An infrastructure to allow
>>   users to squelch them has been introduced, and a few such messages
>>   can be silenced now.
>>
>>  * refs/replace/ hierarchy is designed to be usable as a replacement
>>   of the "grafts" mechanism, with the added advantage that it can be
>>   transferred across repositories.
>>
>>  * "git am" learned to optionally ignore whitespace differences.
>>
>>  * "git am" handles input e-mail files that has CRLF line endings sensibly.
>>
>>  * "git am" learned "--scissors" option to allow you to discard early part
>>   of an incoming e-mail.
>>
>>  * "git archive -o output.zip" works without being told what format to
>>   use with an explicit "--format=zip".option.
>>
>>  * "git checkout", "git reset" and "git stash" learned to pick and
>>   choose to use selected changes you made, similar to "git add -p".
>>
>>  * "git clone" learned a "-b" option to pick a HEAD to check out
>>   different from the remote's default branch.
>>
>>  * "git clone" learned --recursive option.
>>
>>  * "git clone" from a local repository on a different filesystem used to
>>   copy individual object files without preserving the old timestamp, giving
>>   them extra lifetime in the new repository until they gc'ed.
>>
>>  * "git commit --dry-run $args" is a new recommended way to ask "what would
>>   happen if I try to commit with these arguments."
>>
>>  * "git commit --dry-run" and "git status" shows conflicted paths in a
>>   separate section to make them easier to spot during a merge.
>>
>>  * "git cvsimport" now supports password-protected pserver access even
>>   when the password is not taken from ~/.cvspass file.
>>
>>  * "git fast-export" learned --no-data option that can be useful when
>>   reordering commits and trees without touching the contents of
>>   blobs.
>>
>>  * "git fast-import" has a pair of new front-end in contrib/ area.
>>
>>  * "git init" learned to mkdir/chdir into a directory when given an
>>   extra argument (i.e. "git init this").
>>
>>  * "git instaweb" optionally can use mongoose as the web server.
>>
>>  * "git log --decorate" can optionally be told with --decorate=full to
>>   give the reference name in full.
>>
>>  * "git merge" issued an unnecessarily scary message when it detected
>>   that the merge may have to touch the path that the user has local
>>   uncommitted changes to. The message has been reworded to make it
>>   clear that the command aborted, without doing any harm.
>>
>>  * "git push" can be told to be --quiet.
>>
>>  * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
>>   that is derived from the URL used for fetching.
>>
>>  * informational output from "git reset" that lists the locally modified
>>   paths is made consistent with that of "git checkout $another_branch".
>>
>>  * "git submodule" learned to give submodule name to scripts run with
>>   "foreach" subcommand.
>>
>>  * various subcommands to "git submodule" learned --recursive option.
>>
>>  * "git submodule summary" learned --files option to compare the work
>>   tree vs the commit bound at submodule path, instead of comparing
>>   the index.
>>
>>  * "git upload-pack", which is the server side support for "git clone" and
>>   "git fetch", can call a new post-upload-pack hook for statistics purposes.
>>
>> (developers)
>>
>>  * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
>>   source directory; using tmpfs may give faster turnaround.
>>
>>  * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
>>   build for one location, and install into another location to tar it
>>   up.
>>
>> Fixes since v1.6.4
>> ------------------
>>
>> All of the fixes in v1.6.4.X maintenance series are included in this
>> release, unless otherwise noted.
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
Junio C Hamano· Oct 11, 2009, 18:47 UTC · re: Steven Noonan · lore

Re: [ANNOUNCE] GIT 1.6.5

Steven Noonan <steven@uplinklabs.net> writes:
Show 8 quoted lines
> Uh-oh.
>
> Alcarin:crisscross steven$ git remote update
> Updating origin
> fatal: 'git@github.com/tycho/crisscross.git' does not appear to be a
> git repository
> fatal: The remote end hung up unexpectedly
> error: Could not fetch origin

Try user@site:path/to/repo.git with a colon. As you mentioned already, you could also use ssh://user@site/full/path/to/repo.git

> The 'ssh://' part is omitted in numerous places on github.com. I
> realize github.com isn't the final authority on the syntax of the URI,
What do you mean by "final authority"?

Your misconfigured URL is diagnosed by the local client on your end and I do not think it has anything to do with github. Do you mean github.com documentation primarily uses scp syntax (i.e. [user@]site:path/to/repo) instead of the fake URI syntax (i.e. ssh://user@site/full/path/to/repo), *but* misspells the former without colon (i.e. [user@]site/path/to/repo)?

If that is the case, it is something github folks need to fix, but I doubt they have such a breakage.

> but was this an intentional change or a regression?

I do not think older clients ever allowed your colon-less scp syntax. Do you really see any *change*? IOW, not the difference between the ssh:// syntax and a misspelled scp syntax, but a difference between versions of git working and not working with a misspelled scp syntax?

Which version of git worked with "git@github.com/tycho/crisscross.git" for you?

Steven Noonan· Oct 11, 2009, 18:57 UTC · re: Junio C Hamano · lore

Re: [ANNOUNCE] GIT 1.6.5

On Sun, Oct 11, 2009 at 11:47 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 13 quoted lines
> Steven Noonan <steven@uplinklabs.net> writes:
>
>> Uh-oh.
>>
>> Alcarin:crisscross steven$ git remote update
>> Updating origin
>> fatal: 'git@github.com/tycho/crisscross.git' does not appear to be a
>> git repository
>> fatal: The remote end hung up unexpectedly
>> error: Could not fetch origin
>
> Try user@site:path/to/repo.git with a colon.  As you mentioned already,
> you could also use ssh://user@site/full/path/to/repo.git

Oops. You're right, of course. I'm going on 4 hours of sleep in 2 days, so needless to say I'm not at my best right now. Sorry for the noise.

Show 5 quoted lines
>
>> The 'ssh://' part is omitted in numerous places on github.com. I
>> realize github.com isn't the final authority on the syntax of the URI,
>
> What do you mean by "final authority"?

I didn't want to imply that "github says to do it this way, so git should follow".

Jakub Narebski· Oct 14, 2009, 22:11 UTC · re: Junio C Hamano · lore

Re: [ANNOUNCE] GIT 1.6.5

Junio C Hamano <gitster@pobox.com> writes:
Show 16 quoted lines
> The latest feature release GIT 1.6.5 is available at the usual
> places:
> 
>   http://www.kernel.org/pub/software/scm/git/
> 
>   git-1.6.5.tar.{gz,bz2}			(source tarball)
>   git-htmldocs-1.6.5.tar.{gz,bz2}		(preformatted docs)
>   git-manpages-1.6.5.tar.{gz,bz2}		(preformatted docs)
> 
> The RPM binary packages for a few architectures are found in:
> 
>   RPMS/$arch/git-*-1.6.5-1.fc9.$arch.rpm	(RPM)
> 
> This cycle took a bit longer than I hoped, but here it is.  We already
> have some new features cooking in 'next', and I expect we may be able to
> have 1.6.6 by the end of the year.
Compiling git from source RPM git-1.6.5-1.fc9.src.rpm using
  $ rpmbuild --rebuild git-1.6.5-1.fc9.src.rpm
fails with the following error:
    SUBDIR perl
/usr/bin/perl Makefile.PL PREFIX='/usr'
Only one of PREFIX or INSTALL_BASE can be given.  Not both.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.53174 (%build)
Compiling git from source with
 $ make prefix=/home/local/git \
        bindir=/home/local/git \
        gitexecdir=/home/local/git \
        template_dir=/home/local/git \
        GIT_PYTHON_DIR=/home/local/git 
gives the same error.

It might matter that I am using modern Perl way of installing Perl modules locally, via local::lib, with ~/perl5/.modulebuildrc containing

  install  --install_base  /home/jnareb/perl5
and I have
  export MODULEBUILDRC="$HOME/perl5/.modulebuildrc"
  export PERL_MM_OPT="INSTALL_BASE=$HOME/perl5"
Doing
 $ unset PERL_MM_OPT

before compiling (from SRPMS) made compilation pass this stage, and finally succeed.

I guess that perl/Makefile (or rather the file that generates it) should unset PERL_MM_OPT, or use INSTALL_BASE as DESTDIR rather than fiddling with PREFIX.

But I am not a Perl hacker ------------------------------------------------------------ perl, v5.8.6 ExtUtils::MakeMaker 6.54 (local) ExtUtils::MakeMaker 6.17 (global)

export MODULEBUILDRC="$HOME/perl5/.modulebuildrc" export PERL_MM_OPT="INSTALL_BASE=$HOME/perl5"

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Miklos Vajna· Oct 18, 2009, 23:52 UTC · re: Sebastian Pipping · lore

[PATCH] Document git push -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
On Sun, Oct 18, 2009 at 07:05:44PM +0200, Sebastian Pipping <webmaster@hartwork.org> wrote:
> If I'm not mistaken --quiet is not documented in the git-push man page.
> This includes release 1.6.5.1.
Here is a patch to document it.
 Documentation/git-push.txt |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index ba6a8a2..beb3422 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -138,6 +138,12 @@ useful if you write an alias or script around 'git-push'.
 --verbose::
 	Run verbosely.
 
+-q::
+--quiet::
+	Some transports produce output even without `--verbose` turned
+	on. This provides a way to tell them to be more quiet (whereas
+	simply redirecting might lose error messages).
+
 include::urls-remotes.txt[]
 
 OUTPUT
-- 
1.6.5
Nanako Shiraishi· Oct 19, 2009, 02:54 UTC · re: Miklos Vajna · lore

[PATCH] git push: remove incomplete options list from help text

'git push -h' shows usage text with incomplete list of options and then has a separate list of options that are supported. Imitate the way other commands (I looked at 'git diff' for an example) show their options.

Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
---
Quoting Miklos Vajna <vmiklos@frugalware.org>
Show 8 quoted lines
> Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
> ---
>
> On Sun, Oct 18, 2009 at 07:05:44PM +0200, Sebastian Pipping <webmaster@hartwork.org> wrote:
>> If I'm not mistaken --quiet is not documented in the git-push man page.
>> This includes release 1.6.5.1.
>
> Here is a patch to document it.

% git push -h usage: git push [--all | --mirror] [-n | --dry-run] [--porcelain] [--tags] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [-v] [<repository> <refspec>...]

    -q, --quiet           be quiet
    -v, --verbose         be verbose
    --repo <repository>   repository
    --all                 push all refs
    --mirror              mirror all refs
    --tags                push tags
    -n, --dry-run         dry run
    --porcelain           machine-readable output
    -f, --force           force updates
    --thin                use thin pack
    --receive-pack <receive-pack>
                          receive pack program
    --exec <receive-pack>
                          receive pack program
 builtin-push.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c
index 3cb1ee4..6686b79 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -10,7 +10,7 @@
 #include "parse-options.h"
 
 static const char * const push_usage[] = {
-	"git push [--all | --mirror] [-n | --dry-run] [--porcelain] [--tags] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [-v] [<repository> <refspec>...]",
+	"git push <options> [<repository> <refspec>...]",
 	NULL,
 };
 
-- 
1.6.5.rc1.18.g53a9a




-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/
Junio C Hamano· Oct 19, 2009, 03:13 UTC · re: Nanako Shiraishi · lore

Re: [PATCH] git push: remove incomplete options list from help text

Nanako Shiraishi <nanako3@lavabit.com> writes:
Show 22 quoted lines
> 'git push -h' shows usage text with incomplete list of options and then
> has a separate list of options that are supported. Imitate the way other
> commands (I looked at 'git diff' for an example) show their options.
>
> Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
> ---
> ...
> diff --git a/builtin-push.c b/builtin-push.c
> index 3cb1ee4..6686b79 100644
> --- a/builtin-push.c
> +++ b/builtin-push.c
> @@ -10,7 +10,7 @@
>  #include "parse-options.h"
>  
>  static const char * const push_usage[] = {
> -	"git push [--all | --mirror] [-n | --dry-run] [--porcelain] [--tags] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [-v] [<repository> <refspec>...]",
> +	"git push <options> [<repository> <refspec>...]",
>  	NULL,
>  };
>  
> -- 
> 1.6.5.rc1.18.g53a9a

Sounds like a sane thing to do, but I am sort of surprised that you are still on 1.6.5-rc1 ;-)

How does this interact with one of the "unapplied patch" you reminded me of, namely, this one:

    From:	Björn Gustavsson <bgustavsson@gmail.com>
    Subject: [PATCH] push: fix usage: --tags is incompatible with --all and --mirror
    Date:	Thu, 15 Oct 2009 18:39:05 +0200
    Message-ID: <4AD75029.1010109@gmail.com>
        Correct the usage text to make it clear that --tags cannot
        be combined with --all or --mirror.

The option description that comes from parse-options may need to be updated as well, no?

Show 14 quoted lines
>     -q, --quiet           be quiet
>     -v, --verbose         be verbose
>     --repo <repository>   repository
>     --all                 push all refs
>     --mirror              mirror all refs
>     --tags                push tags
>     -n, --dry-run         dry run
>     --porcelain           machine-readable output
>     -f, --force           force updates
>     --thin                use thin pack
>     --receive-pack <receive-pack>
>                           receive pack program
>     --exec <receive-pack>
>                           receive pack program
Nanako Shiraishi· Oct 19, 2009, 03:57 UTC · re: Junio C Hamano · lore

[PATCH] git push: say that --tag can't be used with --all or --mirror in help text

This replaces an earlier patch by Björn Gustavsson,
  Message-ID: <4AD75029.1010109@gmail.com>
Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
---
 builtin-push.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c
index 6686b79..d7248f2 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -181,7 +181,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
 		OPT_BIT( 0 , "all", &flags, "push all refs", TRANSPORT_PUSH_ALL),
 		OPT_BIT( 0 , "mirror", &flags, "mirror all refs",
 			    (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE)),
-		OPT_BOOLEAN( 0 , "tags", &tags, "push tags"),
+		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all nor --mirror"),
 		OPT_BIT('n' , "dry-run", &flags, "dry run", TRANSPORT_PUSH_DRY_RUN),
 		OPT_BIT( 0,  "porcelain", &flags, "machine-readable output", TRANSPORT_PUSH_PORCELAIN),
 		OPT_BIT('f', "force", &flags, "force updates", TRANSPORT_PUSH_FORCE),
-- 
1.6.5.rc1.18.g53a9a




-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/
Jeff King· Oct 19, 2009, 04:14 UTC · re: Nanako Shiraishi · lore

Re: [PATCH] git push: say that --tag can't be used with --all or --mirror in help text

On Mon, Oct 19, 2009 at 12:57:01PM +0900, Nanako Shiraishi wrote:
> -		OPT_BOOLEAN( 0 , "tags", &tags, "push tags"),
> +		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all nor --mirror"),
Grammar nit: I believe it should be "or" and not "nor".

There is an implicit "either", as in "can't be used with either --all or --mirror". Saying "can't be used with neither --all nor --mirror" would be a double-negative. The alternative correct single-negation would be "can be used with neither --all nor --mirror".

-Peff
Jeff King· Oct 21, 2009, 14:42 UTC · re: Nanako Shiraishi · lore

Re: [PATCH] git push: say that --tag can't be used with --all or --mirror in help text

On Mon, Oct 19, 2009 at 12:57:01PM +0900, Nanako Shiraishi wrote:
> -		OPT_BOOLEAN( 0 , "tags", &tags, "push tags"),
> +		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all nor --mirror"),

Hmm. We apparently all managed to miss this typo. It's visually hard to notice because of the ")" closing the macro.

-- >8 --
Subject: [PATCH] push: fix typo in usage
Missing ")".
Signed-off-by: Jeff King <peff@peff.net>
---
 builtin-push.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c
index 7d78711..019c986 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -181,7 +181,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
 		OPT_BIT( 0 , "all", &flags, "push all refs", TRANSPORT_PUSH_ALL),
 		OPT_BIT( 0 , "mirror", &flags, "mirror all refs",
 			    (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE)),
-		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all or --mirror"),
+		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all or --mirror)"),
 		OPT_BIT( 0 , "purge", &flags,
 			"remove locally deleted refs from remote",
 			TRANSPORT_PUSH_PURGE),
-- 
1.6.5.1.139.g6f544.dirty
Nanako Shiraishi· Oct 21, 2009, 21:21 UTC · re: Jeff King · lore

Re: [PATCH] git push: say that --tag can't be used with --all or --mirror in help text

Quoting Jeff King <peff@peff.net>
Show 7 quoted lines
> On Mon, Oct 19, 2009 at 12:57:01PM +0900, Nanako Shiraishi wrote:
>
>> -		OPT_BOOLEAN( 0 , "tags", &tags, "push tags"),
>> +		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all nor --mirror"),
>
> Hmm. We apparently all managed to miss this typo. It's visually hard to
> notice because of the ")" closing the macro.
How embarrassing. Thank you for a fix.
-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/
Jeff King· Oct 19, 2009, 04:10 UTC · re: Nanako Shiraishi · lore

Re: [PATCH] git push: remove incomplete options list from help text

On Mon, Oct 19, 2009 at 11:54:12AM +0900, Nanako Shiraishi wrote:
>  static const char * const push_usage[] = {
> -	"git push [--all | --mirror] [-n | --dry-run] [--porcelain] [--tags] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [-v] [<repository> <refspec>...]",
> +	"git push <options> [<repository> <refspec>...]",

This is a big improvement, IMO. We should probably standardize on when to show options, and when to simply say <options>, and make sure every program does the right thing. I am in favor of a short synopsis followed by a list (as you do here) for both usage and for manpages. However, I raised the question a few weeks ago and the response was slightly negative:

  http://thread.gmane.org/gmane.comp.version-control.git/129399/focus=129424

Probably few people read it, as it was buried deep in a thread. But maybe we should settle on a rule like "short synopsis for usage, long synopsis for manpage" or whatever people think is best.

Also, minor nit with your patch: should it be "[<options>]"?
-Peff
Junio C Hamano· Oct 19, 2009, 05:41 UTC · re: Jeff King · lore

Re: [PATCH] git push: remove incomplete options list from help text

Jeff King <peff@peff.net> writes:
Show 5 quoted lines
> Probably few people read it, as it was buried deep in a thread. But
> maybe we should settle on a rule like "short synopsis for usage, long
> synopsis for manpage" or whatever people think is best.
>
> Also, minor nit with your patch: should it be "[<options>]"?
Thanks, I agree with you on both counts.
Jeff King· Oct 19, 2009, 04:01 UTC · re: Miklos Vajna · lore

Re: [PATCH] Document git push -q

On Mon, Oct 19, 2009 at 01:52:40AM +0200, Miklos Vajna wrote:
Show 14 quoted lines
> diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
> index ba6a8a2..beb3422 100644
> --- a/Documentation/git-push.txt
> +++ b/Documentation/git-push.txt
> @@ -138,6 +138,12 @@ useful if you write an alias or script around 'git-push'.
>  --verbose::
>  	Run verbosely.
>  
> +-q::
> +--quiet::
> +	Some transports produce output even without `--verbose` turned
> +	on. This provides a way to tell them to be more quiet (whereas
> +	simply redirecting might lose error messages).
> +
Thanks, though two complaints:
  1. This is not just about "some transports". Some of the quieted code
     is in transport_push, so hopefully it applies to all transports
     once they follow that code path (though we also pass the quiet flag
     on to pack-objects, so that part is about "some transports".
  2. Maybe it would be more helpful to the user to describe what is
     shown and what is not. I think we want to claim to suppress all
     non-error output (since that was the intent of the recent patches).
     If that is not true for some transport, then we need to fix passing
     --quiet to that transport.

...Ah, I see your confusion. You read the log for afdeeb00, but there were some follow-on patches that impacted others part of push. :)

So maybe this instead:
-- >8 --
Subject: [PATCH] document push's new quiet option
Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/git-push.txt |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index ba6a8a2..37c8895 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -138,6 +138,11 @@ useful if you write an alias or script around 'git-push'.
 --verbose::
 	Run verbosely.
 
+-q::
+--quiet::
+	Suppress all output, including the listing of updated refs,
+	unless an error occurs.
+
 include::urls-remotes.txt[]
 
 OUTPUT
-- 
1.6.5.1.121.g65c47

← back to recent threads