git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* What's cooking in git.git (topics)
@ 2008-02-03 10:59 Junio C Hamano
  2008-02-03 21:43 ` Johannes Schindelin
  2008-02-05  9:37 ` Junio C Hamano
  0 siblings, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-03 10:59 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.

The topics list the commits in reverse chronological order.

I'd like to get post-release fixes to 'maint' first, tag 1.5.4.1
and merge that to 'master', and then start merging things from
'next' to 'master'.

My wish is to have small but short release cycle for 1.5.5 and
leave bigger ones cooking for 1.6.0.

----------------------------------------------------------------
[Requests for Comments]

* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit
 - git-send-email: Generalize auto-cc recipient mechanism.

This came after 1.5.4-rc cycle started and was placed on hold.
I do not recall if there was any objection to it.

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
 - gitignore: lazily find dtype
 - gitignore(5): Allow "foo/" in ignore list to match directory "foo"

This is redone after we had discussion on the list to properly
make "foo/" match only with directories and "foo" with both
files and directories without unnecessary lstat(2) calls.

* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits
 - core.whitespace: cr-at-eol
 - git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 - builtin-apply.c: pass ws_rule down to match_fragment()
 - builtin-apply.c: move copy_wsfix() function a bit higher.
 - builtin-apply.c: do not feed copy_wsfix() leading '+'
 - builtin-apply.c: simplify calling site to apply_line()
 - builtin-apply.c: clean-up apply_one_fragment()
 - builtin-apply.c: mark common context lines in lineinfo structure.
 - builtin-apply.c: optimize match_beginning/end processing a bit.
 - builtin-apply.c: make it more line oriented
 - builtin-apply.c: push match-beginning/end logic down
 - builtin-apply.c: restructure "offset" matching
 - builtin-apply.c: refactor small part that matches context

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 - Optimize rename detection for a huge diff

Micro-optimization whose real world benefit is not proven.

----------------------------------------------------------------
[Will merge to 'master' after 1.5.4.1]

* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
 + git-name-rev: add a --(no-)undefined option.
 + git-describe: Add a --match option to limit considered tags.

* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits
 + lazy index hashing
 + Create pathname-based hash-table lookup into index
 + read-cache.c: introduce is_racy_timestamp() helper
 + read-cache.c: fix a couple more CE_REMOVE conversion
 + Also use unpack_trees() in do_diff_cache()
 + Make run_diff_index() use unpack_trees(), not read_tree()
 + Avoid running lstat(2) on the same cache entry.
 + index: be careful when handling long names
 + Make on-disk index representation separate from in-core one

This is about reducing number of lstat(2) calls during complex
operations, and optimizing "do we have this in the index"
queries.  Most likely this will be the first series to be merged
to 'master'.

----------------------------------------------------------------
[Actively cooking]

* jk/builtin-alias (Sun Feb 3 01:48:29 2008 -0800) 2 commits
 - Revert "Support builtin aliases"
 + Support builtin aliases

Will revert from 'next', as mentioned in the previous issue of this
message.

----------------------------------------------------------------
[Questionable]

* jc/setup (Fri Feb 1 03:13:10 2008 -0800) 3 commits
 - git-add: adjust to the get_pathspec() changes.
 - Make blame accept absolute paths
 - setup: sanitize absolute and funny paths in get_pathspec()

I suspect this would need to be rethought so that it will return
the same number of paths and make the caller choose what to do
with paths outside the repository.  This is very unfortunate.

Ideally, all of git commands that use get_pathspec() should work
on paths inside work tree and barf on paths outside work tree,
and in that sense the series as I did was fine.  But we have
bolted-on-hack commands that want to see and act on paths that
are outside of the work tree; filtering the paths outside the
work tree in get_pathspec() would break them.

If we redo this series that way, git-ls-files (especially with
its --error-unmatch), git-clean, and git-add should detect the
paths outside the work tree themselves and complain, without
relying on get_pathspec() to do the barfing for them.

* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
 - Authentication support for pserver

This needs careful security audit and a fix to its password
database format.  Plaintext in .git/config is not acceptable.

----------------------------------------------------------------
[On hold]

* js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits
 - Make git-remote a builtin
 - Test "git remote show" and "git remote prune"
 - parseopt: add flag to stop on first non option
 - path-list: add functions to work with unsorted lists

I might have carefully looked at this in the past but I do not
recall if there were issues.  Need re-reviewing and help from
the list is appreciated.

* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
 - git-remote: make add -f guess HEAD, as clone does

Likewise.

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.  Please resubmit for discussion and application.
Whatever the name and UI is, selective removal of stash is a
nice thing to have for 1.5.5.

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits
 - PARK: Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 - expose a helper function peel_to_type().
 - merge-recursive: split low-level merge functions out.

Meant to avoid merge_recursive() during cherry-pick and revert,
so that D/F conflicts can be redone right, but I got busy and
this has unfortunately stalled.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit
 - Make "diff" Porcelain output paths as relative to subdirectory.

* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
 - PARK: show-symref protocol extension.


----------------------------------------------------------------

Issues that I have looked at, but unprocessed, unconcluded
and/or lack enough discussions to proceed.

* "git-apply --whitespace=fix" context adjustment
  $gmane/72248

* pretty.c optimization (Marco)
  $gmane/72260

* zlib abstraction (Marco)
  $gmane/72262

* revision.c::limit_list() breakage (Jeff King)
  $gmane/72324
  t/t6009

* synopsys: use {} instead of () for grouping alternatives (Jari Aalto)
  $gmane/72243

* A symref file for ".git/" (Lars Hjemli)
  $gmane/72244

* safecrlf (Steffen Prohaska)
  $gmane/72285

* git-send-email unechoed interactive password (Michael Witten)
  $gmane/72220

* compat/qsort (Brian Downing)
  $gmane/72311

* unified "user's choice brower" (Christian Couder)
  $gmane/72226

* "[alias] st = status" and "cd .git && git st" (Jeff King)
  $gmane/72327

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

* Re: What's cooking in git.git (topics)
  2008-02-03 10:59 What's cooking in git.git (topics) Junio C Hamano
@ 2008-02-03 21:43 ` Johannes Schindelin
  2008-02-05  9:37 ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Johannes Schindelin @ 2008-02-03 21:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Sun, 3 Feb 2008, Junio C Hamano wrote:

> [On hold]
> 
> * js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits
>  - Make git-remote a builtin
>  - Test "git remote show" and "git remote prune"
>  - parseopt: add flag to stop on first non option
>  - path-list: add functions to work with unsorted lists
> 
> I might have carefully looked at this in the past but I do not
> recall if there were issues.  Need re-reviewing and help from
> the list is appreciated.

You said that the test suit fails on one of your machines, and I looked at 
it with valgrind.  There was an odd problem accessing free()d memory, and 
I decided to come back to it after 1.5.4.

So please let me rework it first, before you re-review it.

> * synopsys: use {} instead of () for grouping alternatives (Jari Aalto)
>   $gmane/72243

Personally, I do not think the current form merits any change.

Ciao,
Dscho

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

* What's cooking in git.git (topics)
  2008-02-03 10:59 What's cooking in git.git (topics) Junio C Hamano
  2008-02-03 21:43 ` Johannes Schindelin
@ 2008-02-05  9:37 ` Junio C Hamano
  2008-02-05 10:24   ` Jakub Narebski
  2008-02-07  2:03   ` Junio C Hamano
  1 sibling, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-05  9:37 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.

The topics list the commits in reverse chronological order.

I'd like to get post-release fixes to 'maint' first, tag 1.5.4.1
and merge that to 'master', and then start merging things from
'next' to 'master'.

My wish is to have small but short release cycle for 1.5.5 and
leave bigger ones cooking for 1.6.0.

----------------------------------------------------------------
[New Topics]

* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit
 + Make error messages from cherry-pick/revert more sensible

Björn Steinbrink reported and then tested this.  Is queued in
'next' but will push it out to 'master' after 1.5.4.1.

* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
 + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
 + Documentation/SubmittingPatches: discuss first then submit
 + Documentation/SubmittingPatches: Instruct how to use [PATCH]
   Subject header

These I think are sensible but they did not see much discussion,
so they are parked here for now.

* cc/browser (Sat Feb 2 07:32:56 2008 +0100) 4 commits
 - instaweb: use 'git-web--browse' to launch browser.
 - Rename 'git-help--browse.sh' to 'git-web--browse.sh'.
 - help--browse: add '--config' option to check a config option for a
   browser.
 - help: make 'git-help--browse' usable outside 'git-help'.

Christian Couder consolidated the logic to pick user's favorite
browser between instaweb and help.

* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits
 + git-send-email: Better handling of EOF
 + git-send-email: SIG{TERM,INT} handlers
 + git-send-email: ssh/login style password requests

For 'master' post 1.5.4.1.

* db/no-separate-ls-remote-connection (Mon Feb 4 13:26:23 2008 -0500) 1 commit
 + Reduce the number of connects when fetching

Looked reasonably clean and correct.  Will park in 'next' just
in case, but I think this is ready for 'master' post 1.5.4.1.

* bd/qsort (Sat Feb 2 19:11:30 2008 -0600) 1 commit
 - compat: Add simplified merge sort implementation from glibc

More reasonable qsort(3) than Microsoft by Brian Downing; I
already did the "de-gcc-ism" pointed out on the list but Brian
said he would reroll the patch, so I've parked it in 'pu' for
now.  If Brian is Ok with the version here, we could move it to
'next'.

----------------------------------------------------------------
[Requests for Comments]

* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit
 + git-send-email: Generalize auto-cc recipient mechanism.

This came after 1.5.4-rc cycle started and was placed on hold.
I do not recall if there was any objection to it.

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
 + gitignore: lazily find dtype
 + gitignore(5): Allow "foo/" in ignore list to match directory "foo"

This is redone after we had discussion on the list to properly
make "foo/" match only with directories and "foo" with both
files and directories without unnecessary lstat(2) calls.

* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 - Optimize rename detection for a huge diff

Micro-optimization whose real world benefit is not proven.

----------------------------------------------------------------
[Will merge to 'master' after 1.5.4.1]

* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
 + git-name-rev: add a --(no-)undefined option.
 + git-describe: Add a --match option to limit considered tags.

* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits
 + lazy index hashing
 + Create pathname-based hash-table lookup into index
 + read-cache.c: introduce is_racy_timestamp() helper
 + read-cache.c: fix a couple more CE_REMOVE conversion
 + Also use unpack_trees() in do_diff_cache()
 + Make run_diff_index() use unpack_trees(), not read_tree()
 + Avoid running lstat(2) on the same cache entry.
 + index: be careful when handling long names
 + Make on-disk index representation separate from in-core one

This is about reducing number of lstat(2) calls during complex
operations, and optimizing "do we have this in the index"
queries.  Most likely this will be the first series to be merged
to 'master'.

----------------------------------------------------------------
[Dropped]

* jk/builtin-alias (Sun Feb 3 01:48:29 2008 -0800) 2 commits
 + Revert "Support builtin aliases"
 + Support builtin aliases

Reverted from 'next'.

* js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits

Dropped per author's request, waiting for a respin.

----------------------------------------------------------------
[Actively Cooking]

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

----------------------------------------------------------------
[Questionable]

* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
 - Authentication support for pserver

This needs careful security audit and a fix to its password
database format.  Plaintext in .git/config is not acceptable.

----------------------------------------------------------------
[On Hold]

* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
 - git-remote: make add -f guess HEAD, as clone does

I might have carefully looked at this in the past but I do not
recall if there were issues.  Need re-reviewing and help from
the list is appreciated.

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.  Please resubmit for discussion and application.
Whatever the name and UI is, selective removal of stash is a
nice thing to have for 1.5.5.

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits
 - PARK: Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 - expose a helper function peel_to_type().
 - merge-recursive: split low-level merge functions out.

Meant to avoid merge_recursive() during cherry-pick and revert,
so that D/F conflicts can be redone right, but I got busy and
this has unfortunately stalled.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 . Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 . git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit
 . Make "diff" Porcelain output paths as relative to subdirectory.

* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
 . PARK: show-symref protocol extension.

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

* Re: What's cooking in git.git (topics)
  2008-02-05  9:37 ` Junio C Hamano
@ 2008-02-05 10:24   ` Jakub Narebski
  2008-02-06  9:31     ` Junio C Hamano
  2008-02-07  2:03   ` Junio C Hamano
  1 sibling, 1 reply; 50+ messages in thread
From: Jakub Narebski @ 2008-02-05 10:24 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

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

> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
>  + Documentation/SubmittingPatches: discuss first then submit
>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]
>    Subject header
> 
> These I think are sensible but they did not see much discussion,
> so they are parked here for now.

In those series I think the middle patch could be improved. I guess
that need for brevity overcame need for being explicit. I don't know
if patches meant for discussion are to be send to mailing list only,
or if the patches meant for submissions are to be sent to git mailing
list _and_ maintainer (and is it an error to send them only to the
list) from this description.

The rest patches are IMHO very good improvement.
 
> ----------------------------------------------------------------
> [Will merge to 'master' after 1.5.4.1]
> 
> * ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
>  + git-name-rev: add a --(no-)undefined option.
>  + git-describe: Add a --match option to limit considered tags.

I'd really like that.
 

IIRC there was also patch which did '~' expansion in paths provided
via options to git, but 1.) is was buggy, 2.) it dealt only with
excludefile, and not for example with --git-dir and --work-dir
arguments, 3.) it was not resend for furrther discussion.

-- 
Jakub Narebski
Poland
ShadeHawk on #git

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

* Re: What's cooking in git.git (topics)
  2008-02-05 10:24   ` Jakub Narebski
@ 2008-02-06  9:31     ` Junio C Hamano
  0 siblings, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-06  9:31 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

Jakub Narebski <jnareb@gmail.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
>>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
>>  + Documentation/SubmittingPatches: discuss first then submit
>>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]
>>    Subject header
>> 
>> These I think are sensible but they did not see much discussion,
>> so they are parked here for now.
>
> In those series I think the middle patch could be improved. I guess
> that need for brevity overcame need for being explicit. I don't know
> if patches meant for discussion are to be send to mailing list only,
> or if the patches meant for submissions are to be sent to git mailing
> list _and_ maintainer (and is it an error to send them only to the
> list) from this description.

Yeah, I was very unsure about the wording.  What I think is the
ideal patch flow is:

 (0) You come up with an itch.  You code it up.

 (1) Send it to the list and cc people who may need to know about
     the change.

     The people who may need to know are the ones whose code you
     are butchering.  These people happen to be the ones who are
     most likely to be knowledgeable enough to help you, but
     they have no obligation to help you (i.e. you ask for help,
     don't demand).

     The people could include me, but that is not because I am
     currently the maintainer, but because I may happen to have
     been involved in the code you are touching.

 (2) You get comments and suggestions for improvements.  You may
     even get them in a "on top of" patch form.

 (3) Polish, refine, and re-send to the list and the people who
     spend their time to improve your patch.  Go back to step (2).

 (4) The list forms consensus that the last round of your patch is
     good.  Send it to the list and cc me.

 (5) It is merged to 'next', and cooked further and eventually
     graduates to 'master'.

In any time between the (2)-(3) cycle, I should pick it up from
the list and queue it to 'pu', in order to make it easier for
people play with it without having to pick up and apply the
patch to their trees themselves.

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

* What's cooking in git.git (topics)
  2008-02-05  9:37 ` Junio C Hamano
  2008-02-05 10:24   ` Jakub Narebski
@ 2008-02-07  2:03   ` Junio C Hamano
  2008-02-07  5:05     ` Jeff King
                       ` (2 more replies)
  1 sibling, 3 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-07  2:03 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.

The topics list the commits in reverse chronological order.

I'd like to get post-release fixes to 'maint' first, tag 1.5.4.1
and merge that to 'master', and then start merging things from
'next' to 'master'.

My wish is to have small but short release cycle for 1.5.5 and
leave bigger ones cooking for 1.6.0.

----------------------------------------------------------------
[New Topics]

* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit
 + safecrlf: Add mechanism to warn about irreversible crlf
   conversions

* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits
 + fix config reading in tests
 + allow suppressing of global and system config

* lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits
 - git-submodule: prepare for the .git-file
 - Add tests for .git file
 - Document the .git-file
 - Add platform-independent .git "symlink"

Seems to have funny interaction with Jeff King's test script
updates.

* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits
 + git-commit: add a prepare-commit-msg hook
 + git-commit: Refactor creation of log message.
 + git-commit: set GIT_EDITOR=: if editor will not be launched
 + git-commit: support variable number of hook arguments

----------------------------------------------------------------
[Requests for Comments]

* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit
 + git-send-email: Generalize auto-cc recipient mechanism.

This came after 1.5.4-rc cycle started and was placed on hold.
I do not recall if there was any objection to it.

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
 + gitignore: lazily find dtype
 + gitignore(5): Allow "foo/" in ignore list to match directory "foo"

This is redone after we had discussion on the list to properly
make "foo/" match only with directories and "foo" with both
files and directories without unnecessary lstat(2) calls.

* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 - Optimize rename detection for a huge diff

Micro-optimization whose real world benefit is not proven.

----------------------------------------------------------------
[Will merge to 'master' after 1.5.4.1]

* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
 + git-name-rev: add a --(no-)undefined option.
 + git-describe: Add a --match option to limit considered tags.

* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits
 + lazy index hashing
 + Create pathname-based hash-table lookup into index
 + read-cache.c: introduce is_racy_timestamp() helper
 + read-cache.c: fix a couple more CE_REMOVE conversion
 + Also use unpack_trees() in do_diff_cache()
 + Make run_diff_index() use unpack_trees(), not read_tree()
 + Avoid running lstat(2) on the same cache entry.
 + index: be careful when handling long names
 + Make on-disk index representation separate from in-core one

This is about reducing number of lstat(2) calls during complex
operations, and optimizing "do we have this in the index"
queries.  Most likely this will be the first series to be merged
to 'master'.

----------------------------------------------------------------
[Actively Cooking]

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit
 + Make error messages from cherry-pick/revert more sensible

Björn Steinbrink reported and then tested this.  Is queued in
'next' but will push it out to 'master' after 1.5.4.1.

* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
 + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
 + Documentation/SubmittingPatches: discuss first then submit
 + Documentation/SubmittingPatches: Instruct how to use [PATCH]
   Subject header

These I think are sensible but they did not see much discussion,
so they are parked here for now.

* cc/browser (Sat Feb 2 07:32:56 2008 +0100) 4 commits
 + instaweb: use 'git-web--browse' to launch browser.
 + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.
 + help--browse: add '--config' option to check a config option for a
   browser.
 + help: make 'git-help--browse' usable outside 'git-help'.

Christian Couder consolidated the logic to pick user's favorite
browser between instaweb and help.

* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits
 + git-send-email: Better handling of EOF
 + git-send-email: SIG{TERM,INT} handlers
 + git-send-email: ssh/login style password requests

For 'master' post 1.5.4.1.

* db/no-separate-ls-remote-connection (Mon Feb 4 13:26:23 2008 -0500) 1 commit
 + Reduce the number of connects when fetching

Looked reasonably clean and correct.  Will park in 'next' just
in case, but I think this is ready for 'master' post 1.5.4.1.

* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit
 + compat: Add simplified merge sort implementation from glibc

More reasonable qsort(3) than Microsoft by Brian Downing; I
already did the "de-gcc-ism" pointed out on the list but Brian
said he would reroll the patch, so I've parked it in 'pu' for
now.  If Brian is Ok with the version here, we could move it to
'next'.

----------------------------------------------------------------
[On Hold]

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

----------------------------------------------------------------
[temporarily excluded]

* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
 . git-remote: make add -f guess HEAD, as clone does

I might have carefully looked at this in the past but I do not
recall if there were issues.  Need re-reviewing and help from
the list is appreciated.

* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
 . Authentication support for pserver

This needs careful security audit and a fix to its password
database format.  Plaintext in .git/config is not acceptable.

* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits
 . PARK: Start using replay-tree merge in cherry-pick
 . revert/cherry-pick: start refactoring call to merge_recursive
 . expose a helper function peel_to_type().
 . merge-recursive: split low-level merge functions out.

Meant to avoid merge_recursive() during cherry-pick and revert,
so that D/F conflicts can be redone right, but I got busy and
this has unfortunately stalled.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 . Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 . git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit
 . Make "diff" Porcelain output paths as relative to subdirectory.

* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
 . PARK: show-symref protocol extension.

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

* Re: What's cooking in git.git (topics)
  2008-02-07  2:03   ` Junio C Hamano
@ 2008-02-07  5:05     ` Jeff King
  2008-02-07  9:43       ` Lars Hjemli
  2008-02-07 10:32     ` Jakub Narebski
  2008-02-10 10:48     ` Junio C Hamano
  2 siblings, 1 reply; 50+ messages in thread
From: Jeff King @ 2008-02-07  5:05 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Lars Hjemli, git

On Wed, Feb 06, 2008 at 06:03:51PM -0800, Junio C Hamano wrote:

> * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits
>  - git-submodule: prepare for the .git-file
>  - Add tests for .git file
>  - Document the .git-file
>  - Add platform-independent .git "symlink"
> 
> Seems to have funny interaction with Jeff King's test script
> updates.

I think this is a bug in Lars' code. The problem is that even though we
set GIT_DIR to the contents of the '.git' file, we may already have run
setup_git_env, which creates and remembers paths like '.git/objects'.

It worked with the old tests because we set GIT_CONFIG, which meant that
looking at the config didn't require actually finding the .git
directory. But now that we don't set GIT_CONFIG, setup_git_env gets
called much earlier (to find the right config file). And I think this is
a vindication of my change, since it reflects real world usage much more
-- I can't even get the hash-object test to pass if I do it by hand,
even though the test script passed.

The solution is probably to intercept the lookup of the .git directory
in setup_git_env, and read the .git file there (this should probably get
pulled out as a git_dir() function or similar).

-Peff

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

* Re: What's cooking in git.git (topics)
  2008-02-07  5:05     ` Jeff King
@ 2008-02-07  9:43       ` Lars Hjemli
  0 siblings, 0 replies; 50+ messages in thread
From: Lars Hjemli @ 2008-02-07  9:43 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, git

On Feb 7, 2008 6:05 AM, Jeff King <peff@peff.net> wrote:
> On Wed, Feb 06, 2008 at 06:03:51PM -0800, Junio C Hamano wrote:
>
> > * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits
> >  - git-submodule: prepare for the .git-file
> >  - Add tests for .git file
> >  - Document the .git-file
> >  - Add platform-independent .git "symlink"
> >
> > Seems to have funny interaction with Jeff King's test script
> > updates.
>
> I think this is a bug in Lars' code. The problem is that even though we
> set GIT_DIR to the contents of the '.git' file, we may already have run
> setup_git_env, which creates and remembers paths like '.git/objects'.

Yeah, we need to run set_git_dir() to get all the paths set correctly:

diff --git a/setup.c b/setup.c
index 2cbda91..64b069f 100644
--- a/setup.c
+++ b/setup.c
@@ -339,7 +339,8 @@ const char *setup_git_directory_gently(int *nongit_ok)
        for (;;) {
                gitfile_dir = read_gitfile_gently(DEFAULT_GIT_DIR_ENVIRONMENT);
                if (gitfile_dir) {
-                       setenv(GIT_DIR_ENVIRONMENT, gitfile_dir, 1);
+                       if (set_git_dir(gitfile_dir))
+                               return NULL;
                        break;
                }
                if (is_git_directory(DEFAULT_GIT_DIR_ENVIRONMENT))

But this isn't enough either, git-sh-setup.sh needs a patch when
setting GIT_DIR and I just noticed merge-recursive failing (it needs
to call setup_git_directory() in it's main()).

I'll work on this tonight.

-- 
larsh

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

* Re: What's cooking in git.git (topics)
  2008-02-07  2:03   ` Junio C Hamano
  2008-02-07  5:05     ` Jeff King
@ 2008-02-07 10:32     ` Jakub Narebski
  2008-02-10 10:48     ` Junio C Hamano
  2 siblings, 0 replies; 50+ messages in thread
From: Jakub Narebski @ 2008-02-07 10:32 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

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

> * jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits
>  + fix config reading in tests
>  + allow suppressing of global and system config
> 
> * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits
>  - git-submodule: prepare for the .git-file
>  - Add tests for .git file
>  - Document the .git-file
>  - Add platform-independent .git "symlink"
> 
> Seems to have funny interaction with Jeff King's test script
> updates.

I think that gitdir is a very good idea, but needs further testing.
 
> * ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
>  + git-name-rev: add a --(no-)undefined option.
>  + git-describe: Add a --match option to limit considered tags.

This looks nice. I'd like also to have some kind of --pretty=<format>
(or --format=<format>) for git-describe, and a way to limit both
git-name-rev and git-describe to only *signed* commits.

With this it would be fairly easy in generating git.spec file
from git.spec.in to check if we are on tagged release and use
pre-compiled manpages if it is the case. Although perhaps option
(default?) to use pre-compiled manpages (even if they are outdated
a bit) instead of requiring asciidoc toolchain would be better;
this would make SRPM size larger, as it would contain manpages.
 

> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>  - Move all dashed-form commands to libexecdir
> 
> Scheduled for 1.6.0.  I am not sure if we should merge this to
> 'next' before 1.5.5.  Most active people will be on 'next' and
> if we have this there, the resulting 1.5.5 release might end up
> having issues that come from differences this one introduces.

Perhaps we should first generate libexecdir separate from bindir,
and put helper scripts there (the *--* scripts), to not pollute
PATH with commands which are never meant to be called directly
by user.
 
> * bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
>  . git-remote: make add -f guess HEAD, as clone does
> 
> I might have carefully looked at this in the past but I do not
> recall if there were issues.  Need re-reviewing and help from
> the list is appreciated.

I'd rather below get implemented, so there isn't any guessing
involved.
 
> * jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
>  . PARK: show-symref protocol extension.

What are the plans on git-clone builtinification (and cleaning up
clone progress and error messages[*1*])?

[*1*] http://texagon.blogspot.com/2008/02/let-play-git.html
-- 
Jakub Narebski
Poland
ShadeHawk on #git

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

* What's cooking in git.git (topics)
  2008-02-07  2:03   ` Junio C Hamano
  2008-02-07  5:05     ` Jeff King
  2008-02-07 10:32     ` Jakub Narebski
@ 2008-02-10 10:48     ` Junio C Hamano
  2008-02-10 16:29       ` Jakub Narebski
  2008-02-12  7:24       ` Junio C Hamano
  2 siblings, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-10 10:48 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.  Now I am pushing 1.5.4.1 out,
mature topics will start moving to 'master'.

The topics list the commits in reverse chronological order.

My wish is to have small but short release cycle for 1.5.5 and
leave bigger ones cooking for 1.6.0.

----------------------------------------------------------------
[New Topics]

* 00/config-null (Fri Feb 8 15:26:18 2008 +0100) 2 commits
 - builtin-gc.c: guard config parser from value=NULL
 - archive-tar.c: guard config parser from value=NULL

The "RFH from Janitors" topic.

* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
 - gitweb: Use the config file to set repository owner's name.

Looked Ok.

* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit
 - Add "--show-all" revision walker flag for debugging

* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit
 - Avoid a useless prefix lookup in strbuf_expand()

* db/checkout (Sun Feb 10 01:27:00 2008 -0800) 21 commits
 - (PARK)
 - Build in checkout
 - Move code to clean up after a branch change to branch.c
 - Library function to check for unmerged index entries
 - Use diff -u instead of diff in t7201
 - Move create_branch into a library file
 - Build-in merge-recursive
 - Add "skip_unmerged" option to unpack_trees.
 - Discard "deleted" cache entries after using them to update the
   working tree
 - Send unpack-trees debugging output to stderr
 - Add flag to make unpack_trees() not print errors.
 - Allow callers of unpack_trees() to handle failure

This is building on top of Linus's change to in-core index
structure, which will be in 'master' soon.

----------------------------------------------------------------
[Will merge to 'master' soon]

* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits
 + git-name-rev: add a --(no-)undefined option.
 + git-describe: Add a --match option to limit considered tags.

* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits
 + lazy index hashing
 + Create pathname-based hash-table lookup into index
 + read-cache.c: introduce is_racy_timestamp() helper
 + read-cache.c: fix a couple more CE_REMOVE conversion
 + Also use unpack_trees() in do_diff_cache()
 + Make run_diff_index() use unpack_trees(), not read_tree()
 + Avoid running lstat(2) on the same cache entry.
 + index: be careful when handling long names
 + Make on-disk index representation separate from in-core one

This is about reducing number of lstat(2) calls during complex
operations, and optimizing "do we have this in the index"
queries.  Most likely this will be the first series to be merged
to 'master'.

* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit
 + Make error messages from cherry-pick/revert more sensible

Björn Steinbrink reported and then tested this.

* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit
 + git-send-email: Generalize auto-cc recipient mechanism.

This came after 1.5.4-rc cycle started and was placed on hold.
I do not recall if there was any objection to it.

* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits
 + git-send-email: Better handling of EOF
 + git-send-email: SIG{TERM,INT} handlers
 + git-send-email: ssh/login style password requests

* db/no-separate-ls-remote-connection (Sun Feb 10 03:06:57 2008 +0000) 2 commits
 + Fix "git clone" for git:// protocol
 + Reduce the number of connects when fetching

----------------------------------------------------------------
[Actively Cooking]

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
 + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
 + Documentation/SubmittingPatches: discuss first then submit
 + Documentation/SubmittingPatches: Instruct how to use [PATCH]
   Subject header

These I think are sensible but they did not see much discussion,
so they are parked here for now.

* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit
 + safecrlf: Add mechanism to warn about irreversible crlf
   conversions

* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits
 + fix config reading in tests
 + allow suppressing of global and system config

* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits
 + git-commit: add a prepare-commit-msg hook
 + git-commit: Refactor creation of log message.
 + git-commit: set GIT_EDITOR=: if editor will not be launched
 + git-commit: support variable number of hook arguments

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
 + gitignore: lazily find dtype
 + gitignore(5): Allow "foo/" in ignore list to match directory "foo"

This is redone after we had discussion on the list to properly
make "foo/" match only with directories and "foo" with both
files and directories without unnecessary lstat(2) calls.

* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

* cc/browser (Sat Feb 9 07:11:01 2008 +0100) 8 commits
 + web--browse: Add a few quotes in 'init_browser_path'.
 + Documentation: instaweb: add 'git-web--browse' information.
 + Adjust .gitignore for 5884f1(Rename 'git-help--browse.sh'...)
 + git-web--browse: do not start the browser with nohup
 + instaweb: use 'git-web--browse' to launch browser.
 + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.
 + help--browse: add '--config' option to check a config option for a
   browser.
 + help: make 'git-help--browse' usable outside 'git-help'.

Christian Couder consolidated the logic to pick user's favorite
browser between instaweb and help.

* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit
 + compat: Add simplified merge sort implementation from glibc

More reasonable qsort(3) than Microsoft by Brian Downing.

----------------------------------------------------------------
[On Hold]

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
 - git-remote: make add -f guess HEAD, as clone does

I might have carefully looked at this in the past but I do not
recall if there were issues.  Need re-reviewing and help from
the list is appreciated.

* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
 - Authentication support for pserver

This needs careful security audit and a fix to its password
database format.  Plaintext in .git/config is not acceptable.

* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits
 - PARK: Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 - expose a helper function peel_to_type().
 - merge-recursive: split low-level merge functions out.

Meant to avoid merge_recursive() during cherry-pick and revert,
so that D/F conflicts can be redone right, but I got busy and
this has unfortunately stalled.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit
 - Make "diff" Porcelain output paths as relative to subdirectory.

* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
 - PARK: show-symref protocol extension.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 - Optimize rename detection for a huge diff

Micro-optimization whose real world benefit is not proven.

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

* Re: What's cooking in git.git (topics)
  2008-02-10 10:48     ` Junio C Hamano
@ 2008-02-10 16:29       ` Jakub Narebski
  2008-02-10 16:48         ` Johannes Schindelin
                           ` (2 more replies)
  2008-02-12  7:24       ` Junio C Hamano
  1 sibling, 3 replies; 50+ messages in thread
From: Jakub Narebski @ 2008-02-10 16:29 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

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

> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
>  - gitweb: Use the config file to set repository owner's name.
> 
> Looked Ok.

I assume that you have squashed commits: chaning gitweb.perl and
adding to gitweb/README?

I'd rather hear from Pasky first, but well...
 
> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
>  + Documentation/SubmittingPatches: discuss first then submit
>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]
>    Subject header
> 
> These I think are sensible but they did not see much discussion,
> so they are parked here for now.

I thing first and last are good to go, while second could get
improved. This means I guess either resending second patch for further
discussion, or adding it as is, and wait for further improvements; it
is better than nothing.
 
> * jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
>  + gitignore: lazily find dtype
>  + gitignore(5): Allow "foo/" in ignore list to match directory "foo"
> 
> This is redone after we had discussion on the list to properly
> make "foo/" match only with directories and "foo" with both
> files and directories without unnecessary lstat(2) calls.

Nice. I like it.
 
> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>  - Move all dashed-form commands to libexecdir
> 
> Scheduled for 1.6.0.  I am not sure if we should merge this to
> 'next' before 1.5.5.  Most active people will be on 'next' and
> if we have this there, the resulting 1.5.5 release might end up
> having issues that come from differences this one introduces.

Perhaps git should build with separate libexecdir, and at first move
only helper scripts (*--*) there? We can then check what would break,
a little safer. Helper scripts are not meant to be called by user
anyway...

> * ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
>  - Authentication support for pserver
> 
> This needs careful security audit and a fix to its password
> database format.  Plaintext in .git/config is not acceptable.

Does git-cvsserver understand .netrc?

> * bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
>  - git-remote: make add -f guess HEAD, as clone does
> 
> I might have carefully looked at this in the past but I do not
> recall if there were issues.  Need re-reviewing and help from
> the list is appreciated.

> * jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
>  - PARK: show-symref protocol extension.

Do not the second cancels a bit of first?

-- 
Jakub Narebski
Poland
ShadeHawk on #git

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

* Re: What's cooking in git.git (topics)
  2008-02-10 16:29       ` Jakub Narebski
@ 2008-02-10 16:48         ` Johannes Schindelin
  2008-02-10 22:09         ` Junio C Hamano
  2008-02-10 22:09         ` Junio C Hamano
  2 siblings, 0 replies; 50+ messages in thread
From: Johannes Schindelin @ 2008-02-10 16:48 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: Junio C Hamano, git

Hi,

On Sun, 10 Feb 2008, Jakub Narebski wrote:

> Junio C Hamano <gitster@pobox.com> writes:
> 
> > * ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
> >  - Authentication support for pserver
> > 
> > This needs careful security audit and a fix to its password database 
> > format.  Plaintext in .git/config is not acceptable.
> 
> Does git-cvsserver understand .netrc?

It is not about the client side of authentication, but the server side.  
So no, git-cvsserver does not, and should not, understand .netrc.

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2008-02-10 16:29       ` Jakub Narebski
  2008-02-10 16:48         ` Johannes Schindelin
@ 2008-02-10 22:09         ` Junio C Hamano
  2008-02-10 22:09         ` Junio C Hamano
  2 siblings, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-10 22:09 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git, Petr Baudis

Jakub Narebski <jnareb@gmail.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
>>  - gitweb: Use the config file to set repository owner's name.
>> 
>> Looked Ok.
>
> I assume that you have squashed commits: chaning gitweb.perl and
> adding to gitweb/README?
>
> I'd rather hear from Pasky first, but well...

Thanks; will keep it on 'pu' for now.

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

* Re: What's cooking in git.git (topics)
  2008-02-10 16:29       ` Jakub Narebski
  2008-02-10 16:48         ` Johannes Schindelin
  2008-02-10 22:09         ` Junio C Hamano
@ 2008-02-10 22:09         ` Junio C Hamano
  2 siblings, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-10 22:09 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

Jakub Narebski <jnareb@gmail.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
>>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
>>  + Documentation/SubmittingPatches: discuss first then submit
>>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]
>>    Subject header
>> 
>> These I think are sensible but they did not see much discussion,
>> so they are parked here for now.
>
> I thing first and last are good to go, while second could get
> improved. This means I guess either resending second patch for further
> discussion, or adding it as is, and wait for further improvements; it
> is better than nothing.

Ok.  As you can see above it's already merged to 'next', so here
is an update with pieces taken from my earlier response to your
question.

-- >8 --
[PATCH] Documentation/SubmittingPatches - a suggested patch flow

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 Documentation/SubmittingPatches |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 0661293..0e155c9 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -230,6 +230,41 @@ to modify.  "Tested-by:" says the patch was tested by the person
 and found to have the desired effect.
 
 ------------------------------------------------
+An ideal patch flow
+
+Here is an ideal patch flow for this project the current maintainer
+suggests to the contributors:
+
+ (0) You come up with an itch.  You code it up.
+
+ (1) Send it to the list and cc people who may need to know about
+     the change.
+
+     The people who may need to know are the ones whose code you
+     are butchering.  These people happen to be the ones who are
+     most likely to be knowledgeable enough to help you, but
+     they have no obligation to help you (i.e. you ask for help,
+     don't demand).  "git log -p -- $area_you_are_modifying" would
+     help you find out who they are.
+
+ (2) You get comments and suggestions for improvements.  You may
+     even get them in a "on top of your change" patch form.
+
+ (3) Polish, refine, and re-send to the list and the people who
+     spend their time to improve your patch.  Go back to step (2).
+
+ (4) The list forms consensus that the last round of your patch is
+     good.  Send it to the list and cc the maintainer.
+
+ (5) A topic branch is created with the patch and is merged to 'next',
+     and cooked further and eventually graduates to 'master'.
+
+In any time between the (2)-(3) cycle, the maintainer may pick it up
+from the list and queue it to 'pu', in order to make it easier for
+people play with it without having to pick up and apply the patch to
+their trees themselves.
+
+------------------------------------------------
 MUA specific hints
 
 Some of patches I receive or pick up from the list share common

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

* What's cooking in git.git (topics)
  2008-02-10 10:48     ` Junio C Hamano
  2008-02-10 16:29       ` Jakub Narebski
@ 2008-02-12  7:24       ` Junio C Hamano
  2008-02-12  9:57         ` reflog-delete, was " Johannes Schindelin
  2008-02-17  3:59         ` Junio C Hamano
  1 sibling, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-12  7:24 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.  Now I am pushing 1.5.4.1 out,
mature topics will start moving to 'master'.

The topics list the commits in reverse chronological order.

My wish is to have small but short release cycle for 1.5.5 and
leave bigger ones cooking for 1.6.0.

Many topics graduated to "master".  As announced, I'll rewind
and rebuild "next" with the surviving topics on top of "master"
shortly.

----------------------------------------------------------------
[Graduated to "master"]

* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits

* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits

This is about reducing number of lstat(2) calls during complex
operations, and optimizing "do we have this in the index"
queries.

* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit

Björn Steinbrink reported and then tested this.

* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit

This came after 1.5.4-rc cycle started and was placed on hold.
I do not recall if there was any objection to it.

* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits

* db/no-separate-ls-remote-connection (Sun Feb 10 13:45:08 2008 +0000) 1 commit

----------------------------------------------------------------
[Old New Topics]

* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
 - gitweb: Use the config file to set repository owner's name.

Looked Ok.

* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit
 - Add "--show-all" revision walker flag for debugging

* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit
 - Avoid a useless prefix lookup in strbuf_expand()

* db/checkout (Sun Feb 10 01:27:00 2008 -0800) 11 commits
 - Build in checkout
 - Move code to clean up after a branch change to branch.c
 - Library function to check for unmerged index entries
 - Use diff -u instead of diff in t7201
 - Move create_branch into a library file
 - Build-in merge-recursive
 - Add "skip_unmerged" option to unpack_trees.
 - Discard "deleted" cache entries after using them to update the
   working tree
 - Send unpack-trees debugging output to stderr
 - Add flag to make unpack_trees() not print errors.
 - Allow callers of unpack_trees() to handle failure

This is building on top of Linus's change to in-core index
structure, which will be in 'master' soon.

----------------------------------------------------------------
[Will merge to 'master' soon]

* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits
 + Documentation/SubmittingPatches: What's Acked-by and Tested-by?
 + Documentation/SubmittingPatches: discuss first then submit
 + Documentation/SubmittingPatches: Instruct how to use [PATCH]
   Subject header

* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits
 + fix config reading in tests
 + allow suppressing of global and system config

* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits
 + git-commit: add a prepare-commit-msg hook
 + git-commit: Refactor creation of log message.
 + git-commit: set GIT_EDITOR=: if editor will not be launched
 + git-commit: support variable number of hook arguments

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits
 + gitignore: lazily find dtype
 + gitignore(5): Allow "foo/" in ignore list to match directory "foo"

This is redone after we had discussion on the list to properly
make "foo/" match only with directories and "foo" with both
files and directories without unnecessary lstat(2) calls.

* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit
 + compat: Add simplified merge sort implementation from glibc

More reasonable qsort(3) than Microsoft by Brian Downing.

----------------------------------------------------------------
[Actively Cooking]

* cc/browser (Mon Feb 11 10:57:34 2008 -0500) 9 commits
 + git-web--browse: fix misplaced quote in init_browser_path()
 + web--browse: Add a few quotes in 'init_browser_path'.
 + Documentation: instaweb: add 'git-web--browse' information.
 + Adjust .gitignore for 5884f1(Rename 'git-help--browse.sh'...)
 + git-web--browse: do not start the browser with nohup
 + instaweb: use 'git-web--browse' to launch browser.
 + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.
 + help--browse: add '--config' option to check a config option for a
   browser.
 + help: make 'git-help--browse' usable outside 'git-help'.

Christian Couder consolidated the logic to pick user's favorite
browser between instaweb and help.

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit
 + safecrlf: Add mechanism to warn about irreversible crlf
   conversions

* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits
 + apply: do not barf on patch with too large an offset
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

----------------------------------------------------------------
[On Hold]

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.  Dscho was in favor of "pop" without "drop".

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit
 - git-remote: make add -f guess HEAD, as clone does

* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit
 - Authentication support for pserver

This needs careful security audit and a fix to its password
database format.  Plaintext in .git/config is not acceptable.

* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits
 - PARK: Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 - expose a helper function peel_to_type().
 - merge-recursive: split low-level merge functions out.

Meant to avoid merge_recursive() during cherry-pick and revert,
so that D/F conflicts can be redone right, but I got busy and
this has unfortunately stalled.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit
 - diff --relative: output paths as relative to the current
   subdirectory

* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit
 - PARK: show-symref protocol extension.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 - Optimize rename detection for a huge diff

Micro-optimization whose real world benefit is not proven.

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

* reflog-delete, was Re: What's cooking in git.git (topics)
  2008-02-12  7:24       ` Junio C Hamano
@ 2008-02-12  9:57         ` Johannes Schindelin
  2008-02-17  3:59         ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Johannes Schindelin @ 2008-02-12  9:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Mon, 11 Feb 2008, Junio C Hamano wrote:

> [On Hold]
> 
> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>  + builtin-reflog.c: fix typo that accesses an unset variable
>  + Teach "git reflog" a subcommand to delete single entries
> 
> There was a patch that uses this to implement "git-stash drop",
> which I didn't queue, as the command name and the UI was
> undecided yet.  Dscho was in favor of "pop" without "drop".

Well, I was in favour of making "pop" the main user visible action.

Ciao,
Dscho

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

* What's cooking in git.git (topics)
  2008-02-12  7:24       ` Junio C Hamano
  2008-02-12  9:57         ` reflog-delete, was " Johannes Schindelin
@ 2008-02-17  3:59         ` Junio C Hamano
  2008-02-17 12:41           ` Jeff King
                             ` (4 more replies)
  1 sibling, 5 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-17  3:59 UTC (permalink / raw)
  To: git

Here are the topics that have been kept out of 'master'.
Commits prefixed with '-' are only in 'pu' while commits
prefixed with '+' are in 'next'.

The topics list the commits in reverse chronological order.

Many topics graduated to 'master'.  As announced, I'll rewind
and rebuild "next" with the surviving topics on top of "master",
sometime tomorrow.

----------------------------------------------------------------
[New Topics]

* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits
 - diff: make --dirstat binary-file safe
 + Add "--dirstat" for some directory statistics

The first one already in 'next' is the latest toy Linus showed
off in his 2.6.25-rc2 announcement.  The other one on top is a
rework to make it work more sensibly with a tree with binary
contents.

* gp/hash-stdin (Thu Feb 14 20:13:55 2008 +0000) 1 commit
 - hash-object: cleanup handling of command line options

I've touched Gerrit's original up somewhat and am waiting for a
feedback.

* bc/fopen (Fri Feb 8 20:32:47 2008 -0600) 1 commit
 + Add compat/fopen.c which returns NULL on attempt to open directory

We would want fread(3) from fopen(3)'ed directory to fail but
some systems don't.  This adds a compatibility wrapper for
fopen(3) that fails on directories.

* js/maint-http-push (Thu Feb 14 23:26:12 2008 +0000) 3 commits
 + http-push: avoid a needless goto
 + http-push: do not get confused by submodules
 + http-push: avoid invalid memory accesses

This forks off of 'maint' in the hope of having a fixed
http-push in future 1.5.4.X.  Will wait for success stories.

* js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits
 - start_command(), if .in/.out > 0, closes file descriptors, not the
   callers
 - start_command(), .in/.out/.err = -1: Callers must close the file
   descriptor

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits
 + add--interactive: handle initial commit better
 + hard-code the empty tree object

Jeff added code to deal with the initial commit case better in
"git-add -i".  Personally I wonder why we bother (if it is an
initial commit, the user _knows_ there is nothing to diff in the
HEAD as there is no HEAD yet, heavens), but the code is already
there so why not.

----------------------------------------------------------------
[Merged to 'master']

* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800)

* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500)

* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100)

* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800)

* bd/qsort (Tue Feb 5 15:10:44 2008 -0600)

* cc/browser (Mon Feb 11 10:57:34 2008 -0500)

* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100)

----------------------------------------------------------------
[Actively Cooking]

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit
 + Add "--show-all" revision walker flag for debugging

* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit
 + Avoid a useless prefix lookup in strbuf_expand()

* db/checkout (Sat Feb 16 17:17:09 2008 -0800) 12 commits
 + checkout: notice when the switched branch is behind or forked
 + Build in checkout
 + Move code to clean up after a branch change to branch.c
 + Library function to check for unmerged index entries
 + Use diff -u instead of diff in t7201
 + Move create_branch into a library file
 + Build-in merge-recursive
 + Add "skip_unmerged" option to unpack_trees.
 + Discard "deleted" cache entries after using them to update the
   working tree
 + Send unpack-trees debugging output to stderr
 + Add flag to make unpack_trees() not print errors.
 + Allow callers of unpack_trees() to handle failure

Checkout rewritten in C.

* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits
 + apply: do not barf on patch with too large an offset
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

Further work on "apply --whitespace=fix".

* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits
 + diff --relative: help working in a bare repository
 + diff --relative: output paths as relative to the current
   subdirectory

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

----------------------------------------------------------------
[On Hold]

* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
 + gitweb: Use the config file to set repository owner's name.

On hold per Jakub's reluctance.

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.  Dscho was in favor of "pop" without "drop".

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

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

* Re: What's cooking in git.git (topics)
  2008-02-17  3:59         ` Junio C Hamano
@ 2008-02-17 12:41           ` Jeff King
  2008-02-17 13:52           ` Jakub Narebski
                             ` (3 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Jeff King @ 2008-02-17 12:41 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, Feb 16, 2008 at 07:59:57PM -0800, Junio C Hamano wrote: 
> * jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits
>  + add--interactive: handle initial commit better
>  + hard-code the empty tree object
> 
> Jeff added code to deal with the initial commit case better in
> "git-add -i".  Personally I wonder why we bother (if it is an
> initial commit, the user _knows_ there is nothing to diff in the
> HEAD as there is no HEAD yet, heavens), but the code is already
> there so why not.

I was also tempted to just have it output "you can't do this, it's an
initial commit." But the change was fairly easy, and I think Kate's
point is valid: even though it's an unlikely corner case, new users are
likely to start exploring at that corner case, so it helps with new user
perception that we handle it gracefully.

-Peff

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

* Re: What's cooking in git.git (topics)
  2008-02-17  3:59         ` Junio C Hamano
  2008-02-17 12:41           ` Jeff King
@ 2008-02-17 13:52           ` Jakub Narebski
  2008-02-17 18:59             ` Junio C Hamano
  2008-02-17 15:48           ` Matthias Kestenholz
                             ` (2 subsequent siblings)
  4 siblings, 1 reply; 50+ messages in thread
From: Jakub Narebski @ 2008-02-17 13:52 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Bruno Ribas, J.H., Petr Baudis

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

> ----------------------------------------------------------------
> [New Topics]
> 
> * lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits
>  - diff: make --dirstat binary-file safe
>  + Add "--dirstat" for some directory statistics
> 
> The first one already in 'next' is the latest toy Linus showed
> off in his 2.6.25-rc2 announcement.  The other one on top is a
> rework to make it work more sensibly with a tree with binary
> contents.

Is this new one bytecount based rather than lines-changed based also
for text files?
 
> * js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits
>  - start_command(), if .in/.out > 0, closes file descriptors, not the
>    callers
>  - start_command(), .in/.out/.err = -1: Callers must close the file
>    descriptor

...and request for API documentation...
 
> * db/checkout (Sat Feb 16 17:17:09 2008 -0800) 12 commits
 
> Checkout rewritten in C.

Nice.
 
> ----------------------------------------------------------------
> [On Hold]
> 
> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
>  + gitweb: Use the config file to set repository owner's name.
> 
> On hold per Jakub's reluctance.

It was tested by the author (Bruno Ribas) that it doesn't affect
performance, although IMHO for a bit superficial test (1000 identical
repositories, gitweb run as a script, dd or git-for-each-ref as an
additional load).  I'd like to heard from larger gitweb deployments
how it works with a webserver (ApacheBench or similar), with a real
set of repositories, and perhaps in real load conditions... of course
on test gitweb, not on live one.

I also wonder if it would make sense to make it a feature,
i.e. instead of

+       if (!defined $owner){
+               $owner = git_get_project_config('owner');
+       }
        if (!defined $owner) {

have

+       if (!defined $owner){
+               $owner = gitweb_check_feature('owner');
+       }
        if (!defined $owner) {

with the 'owner' feature set as below:

+	'owner' => {
+		'sub' => \&feature_repo_owner,
+		'override' => 1,
+		'default' => [undef]},

and some implementation of feature_repo_owner.  This way it would be
possible to turn off checking for gitweb.owner in repo config from
withing gitweb config.  But this migh be an overingeneering...


I'd like to wait for a bit for comments, and if there wouldn't be any
negative ones, merge it in... and wait who screams ;-)
 
> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>  - Move all dashed-form commands to libexecdir
>
> Scheduled for 1.6.0.  I am not sure if we should merge this to
> 'next' before 1.5.5.  Most active people will be on 'next' and
> if we have this there, the resulting 1.5.5 release might end up
> having issues that come from differences this one introduces.

What about making separate libexecdir and moving _helper_ scripts
(*--*) there first?

-- 
Jakub Narebski
Poland
ShadeHawk on #git

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

* Re: What's cooking in git.git (topics)
  2008-02-17  3:59         ` Junio C Hamano
  2008-02-17 12:41           ` Jeff King
  2008-02-17 13:52           ` Jakub Narebski
@ 2008-02-17 15:48           ` Matthias Kestenholz
  2008-02-17 18:10             ` Junio C Hamano
  2008-02-17 20:28           ` [Announce] 'next' rewound and rebased Junio C Hamano
  2008-02-21  4:16           ` What's cooking in git.git (topics) Junio C Hamano
  4 siblings, 1 reply; 50+ messages in thread
From: Matthias Kestenholz @ 2008-02-17 15:48 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, 2008-02-16 at 19:59 -0800, Junio C Hamano wrote:
> [...]

What about color.ui? I am still interested in a single central
configuration variable to enable colored output from git. I know that I
sent a proposal patch at a bad time.

Here is the last patch I sent to the list:

http://permalink.gmane.org/gmane.comp.version-control.git/70055

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

* Re: What's cooking in git.git (topics)
  2008-02-17 15:48           ` Matthias Kestenholz
@ 2008-02-17 18:10             ` Junio C Hamano
  2008-02-17 18:22               ` Jeff King
  0 siblings, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-17 18:10 UTC (permalink / raw)
  To: Matthias Kestenholz; +Cc: git

Matthias Kestenholz <mk@spinlock.ch> writes:

> On Sat, 2008-02-16 at 19:59 -0800, Junio C Hamano wrote:
>> [...]
>
> What about color.ui? I am still interested in a single central
> configuration variable to enable colored output from git. I know that I
> sent a proposal patch at a bad time.

Yeah, I liked the general idea, and was about to forget.  I
vaguely recall there was a design disagreement between you and
Jeff King (perhaps others as well)?

I appreciate a reminder like your message, but I do not want to
be in the business of fishing for old patches that may or may
not { apply to | work well with } the updated base anymore for
everybody.  I wish I had the mental bandwidth to do so, but it
simply becomes infeasible in the longer run.

Could you (and anybody who has "sent but about to be or
suspected to be forgotten" changes) respin, retest and resend
please?

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

* Re: What's cooking in git.git (topics)
  2008-02-17 18:10             ` Junio C Hamano
@ 2008-02-17 18:22               ` Jeff King
  0 siblings, 0 replies; 50+ messages in thread
From: Jeff King @ 2008-02-17 18:22 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Matthias Kestenholz, git

On Sun, Feb 17, 2008 at 10:10:50AM -0800, Junio C Hamano wrote:

> > What about color.ui? I am still interested in a single central
> > configuration variable to enable colored output from git. I know that I
> > sent a proposal patch at a bad time.
> 
> Yeah, I liked the general idea, and was about to forget.  I
> vaguely recall there was a design disagreement between you and
> Jeff King (perhaps others as well)?

IIRC, my objection was that the original implementation didn't correctly
preserve the existing split color types, but that the latest version of
the patch dealt with it.

> I appreciate a reminder like your message, but I do not want to
> be in the business of fishing for old patches that may or may
> not { apply to | work well with } the updated base anymore for
> everybody.  I wish I had the mental bandwidth to do so, but it
> simply becomes infeasible in the longer run.
> 
> Could you (and anybody who has "sent but about to be or
> suspected to be forgotten" changes) respin, retest and resend
> please?

Speaking as a reviewer, I second this. It is much easier to review
patches if they are up to date, and doubly so if the new cover letter
material gives a hint as to what happened the last time (e.g., "this
looked good, but we were in rc freeze", "somebody objected to X, and I
have fixed it", or even just "nobody said anything and it got
overlooked").

-Peff

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

* Re: What's cooking in git.git (topics)
  2008-02-17 13:52           ` Jakub Narebski
@ 2008-02-17 18:59             ` Junio C Hamano
  2008-02-17 22:01               ` Jakub Narebski
  0 siblings, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-17 18:59 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git, Bruno Ribas, J.H., Petr Baudis

Jakub Narebski <jnareb@gmail.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
> ...
>> * lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits
>>  - diff: make --dirstat binary-file safe
>>  + Add "--dirstat" for some directory statistics
>> 
>> The first one already in 'next' is the latest toy Linus showed
>> off in his 2.6.25-rc2 announcement.  The other one on top is a
>> rework to make it work more sensibly with a tree with binary
>> contents.
>
> Is this new one bytecount based rather than lines-changed based also
> for text files?

Short answer: Yes.

The issue in Linus's version is that the amount of change is
defined to be "number of lines added and deleted" for text files
while it is "number of bytes in preimage and postimage" for
binary files.  Summing them up and computing proportions among
them is comparing apples and oranges.

If you used line-based amount-of-change for text and byte-based
one for binary, you would be still comparing apples and oranges,
and you are not solving anything.  The scale used for all files
has to be consistent.

>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
>>  + gitweb: Use the config file to set repository owner's name.
>> 
>> On hold per Jakub's reluctance.
> 
> It was tested by the author (Bruno Ribas) that it doesn't affect
> performance, although IMHO for a bit superficial test (1000 identical
> repositories, gitweb run as a script, dd or git-for-each-ref as an
> additional load).  I'd like to heard from larger gitweb deployments
> how it works with a webserver (ApacheBench or similar), with a real
> set of repositories, and perhaps in real load conditions... of course
> on test gitweb, not on live one.

I personally think the patch is Ok.  It would not affect really
large and loaded sites, because the top-level project list is
unusable for them without caching like John 'Warthog9' Hawley
does for k.org, due to other performance bottleneck (namely,
"the last changed timestamp") anyway.

By the way, I think "real load conditions" and "test gitweb not
live" are unfortunately mutually exclusive.  If it is known to
be "test", it will not attract the same set of "real" people as
the real one.

> I also wonder if it would make sense to make it a feature,

It might make sense, but it would not probably not help much in
practice.  It is overengineering, and I think it is spending
efforts in wrong place in the first place.

What I personally think the most important thing that should
happen to gitweb is to help cleaning up and updating John's
caching version that powers k.org, and update our version to
that.  John's version has seen a lot more real-life loads than
any other installation of the vanilla version in git.git, and we
should take advantage of his effort by slurping improvements
from his.  People who are both interested and have been involved
in gitweb might want to form a "gitweb-ng strike force" group,
and make a consolidated effort, just like msysgit folks do to
port our mess to Windows ;-).

>> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>>  - Move all dashed-form commands to libexecdir
>>
>> Scheduled for 1.6.0.  I am not sure if we should merge this to
>> 'next' before 1.5.5.  Most active people will be on 'next' and
>> if we have this there, the resulting 1.5.5 release might end up
>> having issues that come from differences this one introduces.
>
> What about making separate libexecdir and moving _helper_ scripts
> (*--*) there first?

Why keep suggesting adding _more_ work, without any code nor
discussion of how that would help?

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

* [Announce] 'next' rewound and rebased
  2008-02-17  3:59         ` Junio C Hamano
                             ` (2 preceding siblings ...)
  2008-02-17 15:48           ` Matthias Kestenholz
@ 2008-02-17 20:28           ` Junio C Hamano
  2008-02-21  4:16           ` What's cooking in git.git (topics) Junio C Hamano
  4 siblings, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-17 20:28 UTC (permalink / raw)
  To: git

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

> ...  As announced, I'll rewind
> and rebuild "next" with the surviving topics on top of "master",
> sometime tomorrow.

... which just happened.  The old history leading to "next" used
to be 1323 commits ahead of v1.5.4.2 but the rebased one now is
only 182 commits ahead, mostly due to old merge commits that
never went out of "next" to "master" and a handful reverts.

On k.org and repo.or.cz repo, I pushed out a branch "old-next"
whose ancestry is connected to the old "next" and whose tip-tree
matches that of the tip of "next", so if any of you have been
building on top of 'next', you may want a one-time conversion to
do:

	$ git fetch
        $ git rebase --onto origin/next origin/old-next my-branch-on-next

Recent "git pull --rebase" may be good enough by consulting
your remotes/origin/next@{1} to find the base without using the
old-next trick, though I haven't checked.

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

* Re: What's cooking in git.git (topics)
  2008-02-17 18:59             ` Junio C Hamano
@ 2008-02-17 22:01               ` Jakub Narebski
  2008-02-18  0:37                 ` Junio C Hamano
  0 siblings, 1 reply; 50+ messages in thread
From: Jakub Narebski @ 2008-02-17 22:01 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Bruno Ribas, J.H., Petr Baudis

On Sun, 17 Feb 2008, Junio C Hamano <gitster@pobox.com> wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
> > Junio C Hamano <gitster@pobox.com> writes:
> 
>>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit
>>>  + gitweb: Use the config file to set repository owner's name.
>>> 
>>> On hold per Jakub's reluctance.
>> 
>> It was tested by the author (Bruno Ribas) that it doesn't affect
>> performance, although IMHO for a bit superficial test (1000 identical
>> repositories, gitweb run as a script, dd or git-for-each-ref as an
>> additional load).  I'd like to heard from larger gitweb deployments
>> how it works with a webserver (ApacheBench or similar), with a real
>> set of repositories, and perhaps in real load conditions... of course
>> on test gitweb, not on live one.
> 
> I personally think the patch is Ok.  It would not affect really
> large and loaded sites, because the top-level project list is
> unusable for them without caching like John 'Warthog9' Hawley
> does for k.org, due to other performance bottleneck (namely,
> "the last changed timestamp") anyway.

I was worrying that it would affect gitweb performance badly, in spite 
of (slightly superficial) benchmarks[*1*] testing it is not the case.
Benchmarks were as far as I can understand for Linux, and I worry a bit 
about other operating systems (MacOS X, MS Windows,...) with a higher 
fork cost... although I have slight suspicion that finding owner (not 
just an id of an owner) of a file (from Perl) is of similar cost.

BTW. after reading the thread again the load in benchmark was always 
generated by dd, not by running bunch of git-for-each-ref on different 
refs in parallel.

[*1*] Whose benchmarks should be at least mentioned IMHO in commit 
message; also update to gitweb/README should be IMHO in the same commit 
(while $path/$project -> $git_dir could, but not necessarily should, be 
in separate cleanup patch).
 
> By the way, I think "real load conditions" and "test gitweb not
> live" are unfortunately mutually exclusive.  If it is known to
> be "test", it will not attract the same set of "real" people as
> the real one.

You can always stat, and generate test load with the same stats,
perhaps cut to the page / feature you are benchmarking / profiling.

By "read load conditions" I meant here running second gitweb with or 
without the gitweb.owner patch on the same server as live gitweb. But 
that would affect repetability of benchmark, although I'm not sure if 
it matters; it probably depends on how variable load is, on how 
sensitive benchmark is to detailed load, etc.
 
>> I also wonder if it would make sense to make it a feature,
> 
> It might make sense, but it would not probably not help much in
> practice.  It is overengineering, and I think it is spending
> efforts in wrong place in the first place.

I guess that after waiting a bit for comments you could either apply 
patches, apply patches squashed, or ask Bruno Ribas for resend.

I would then send patch making it a "feature" (where the important bit 
is 'override' part, and 'defaults' does not matter), you would then 
reject it because it is overengineering ;-) or not; but it would be in 
achives.
 
> What I personally think the most important thing that should
> happen to gitweb is to help cleaning up and updating John's
> caching version that powers k.org, and update our version to
> that.  John's version has seen a lot more real-life loads than
> any other installation of the vanilla version in git.git, and we
> should take advantage of his effort by slurping improvements
> from his.  People who are both interested and have been involved
> in gitweb might want to form a "gitweb-ng strike force" group,
> and make a consolidated effort, just like msysgit folks do to
> port our mess to Windows ;-).

This would be really nice. IIRC John said that he would try to find time 
to update kernel.org gitweb to latest, I guess sending caching patches 
for gitweb to the list (or a please pull request).

It was a bit unfortunate that J.H. split gitweb into many smaller 
modules to better understand code when adding caching support, the move 
which was not accepted for "mainline" gitweb, thus effectively creating 
a fork.


BTW it would be nice to have benchmark of different web interfaces under 
heavly load: gitweb, repo.or.cz gitweb, kernel.org gitweb, cgit, wit 
(the Ruby one), git-php, gitarella (if it is developed),...


>>> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>>>  - Move all dashed-form commands to libexecdir
>>>
>>> Scheduled for 1.6.0.  I am not sure if we should merge this to
>>> 'next' before 1.5.5.  Most active people will be on 'next' and
>>> if we have this there, the resulting 1.5.5 release might end up
>>> having issues that come from differences this one introduces.
>>
>> What about making separate libexecdir and moving _helper_ scripts
>> (*--*) there first?
> 
> Why keep suggesting adding _more_ work, without any code nor
> discussion of how that would help?

I'm sorry. 

To start discussion: :-)

1. Currently tests check _built_ version:

   # Test the binaries we have just built.  The tests are kept in
   # t/ subdirectory and are run in trash subdirectory.

   It would be nice if there were a switch which would allow to test
   _installed_ (somewhere) version of git, to check for errors like
   some script not finding some command etc.

2. Where to put gitexecdir? /usr/libexec is not in FHS...

-- 
Jakub Narebski
Poland

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

* Re: What's cooking in git.git (topics)
  2008-02-17 22:01               ` Jakub Narebski
@ 2008-02-18  0:37                 ` Junio C Hamano
  2008-02-18  1:05                   ` Jakub Narebski
  0 siblings, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-18  0:37 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git, Bruno Ribas, J.H., Petr Baudis

Jakub Narebski <jnareb@gmail.com> writes:

> 1. Currently tests check _built_ version:
>
>    # Test the binaries we have just built.  The tests are kept in
>    # t/ subdirectory and are run in trash subdirectory.
>
>    It would be nice if there were a switch which would allow to test
>    _installed_ (somewhere) version of git, to check for errors like
>    some script not finding some command etc.

If you are saying _in addition_ I would not stop you, but I am
not interested in testing installed version at all.  Testing
after installing is already too late.

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

* Re: What's cooking in git.git (topics)
  2008-02-18  0:37                 ` Junio C Hamano
@ 2008-02-18  1:05                   ` Jakub Narebski
  0 siblings, 0 replies; 50+ messages in thread
From: Jakub Narebski @ 2008-02-18  1:05 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
> 
> > 1. Currently tests check _built_ version:
> >
> >    # Test the binaries we have just built.  The tests are kept in
> >    # t/ subdirectory and are run in trash subdirectory.
> >
> >    It would be nice if there were a switch which would allow to test
> >    _installed_ (somewhere) version of git, to check for errors like
> >    some script not finding some command etc.
> 
> If you are saying _in addition_ I would not stop you, but I am
> not interested in testing installed version at all.  Testing
> after installing is already too late.

Of course I'm saying "in addition": I wrote "if there were a switch",
meaning that current running test for built git would be default, and
after setting some environment variable for example it would test
installed (or rather pre-installed) version.

It would be testing halfway during installing: we should install to some 
DESTDIR (like rpm does when building from SRPM), 
e.g. /tmp/git-<version>-root/, or something like that.

-- 
Jakub Narebski
Poland

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

* What's cooking in git.git (topics)
  2008-02-17  3:59         ` Junio C Hamano
                             ` (3 preceding siblings ...)
  2008-02-17 20:28           ` [Announce] 'next' rewound and rebased Junio C Hamano
@ 2008-02-21  4:16           ` Junio C Hamano
  2008-02-21 10:40             ` Johannes Schindelin
  2008-02-25  8:40             ` Junio C Hamano
  4 siblings, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-21  4:16 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits
 + doc: documentation update for the branch track changes
 + branch: optionally setup branch.*.merge from upstream local
   branches

This allows you to automatically set up tracking even when forking
from a local branch; it builds on top of Daniel's "checkout in C".

* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits
 + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
 + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler

This makes conflicting merges that have hunks separated by only
a few common lines much easier to read.

* db/cover-letter (Tue Feb 19 02:40:35 2008 -0500) 8 commits
 + Support a --cc=<email> option in format-patch
 + Combine To: and Cc: headers
 + Fix format.headers not ending with a newline
 + Add tests for extra headers in format-patch
 + Add a --cover-letter option to format-patch
 + Export some email and pretty-printing functions
 + Improve message-id generation flow control for format-patch
 + Add more tests for format-patch

Teaches format-patch to optionally generate cover letters.

* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit
 + Resolve value supplied for no-colon push refspecs

Kills two birds with a commit by (1) fixing "git push $there +HEAD"
to force the single push, and (2) allowing you to set
"remote.$there.push = HEAD" so that "git push $there" will push
only the current branch.

* db/host-alias (Mon Feb 18 23:28:38 2008 -0500) 2 commits
 - Add support for host aliases in config files
 - Use ALLOC_GROW in remote.{c,h}

Allows URLs used in pushing and fetching to be rewritten.
This is an older round of the series.

----------------------------------------------------------------
[Graduated to "master"]

* bc/fopen (Fri Feb 8 20:32:47 2008 -0600) 1 commit
 + Add compat/fopen.c which returns NULL on attempt to open directory

We would want fread(3) from fopen(3)'ed directory to fail but
some systems don't.  This adds a compatibility wrapper for
fopen(3) that fails on directories.

* js/maint-http-push (Thu Feb 14 23:26:12 2008 +0000) 3 commits
 + http-push: avoid a needless goto
 + http-push: do not get confused by submodules
 + http-push: avoid invalid memory accesses

This forks off of 'maint' in the hope of having a fixed
http-push in future 1.5.4.X.

* jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits
 + add--interactive: handle initial commit better
 + hard-code the empty tree object

Deals with the initial commit case better in "git-add -i".

* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits
 + builtin-mv: minimum fix to avoid losing files
 + git-add: adjust to the get_pathspec() changes.
 + Make blame accept absolute paths
 + setup: sanitize absolute and funny paths in get_pathspec()

Works better when an absolute path into work tree is given where
a relative paths is expected.

* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit
 + Add "--show-all" revision walker flag for debugging

* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit
 + Avoid a useless prefix lookup in strbuf_expand()

----------------------------------------------------------------
[Will merge to "master" soon]

* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits
 + apply: do not barf on patch with too large an offset
 + core.whitespace: cr-at-eol
 + git-apply --whitespace=fix: fix whitespace fuzz introduced by
   previous run
 + builtin-apply.c: pass ws_rule down to match_fragment()
 + builtin-apply.c: move copy_wsfix() function a bit higher.
 + builtin-apply.c: do not feed copy_wsfix() leading '+'
 + builtin-apply.c: simplify calling site to apply_line()
 + builtin-apply.c: clean-up apply_one_fragment()
 + builtin-apply.c: mark common context lines in lineinfo structure.
 + builtin-apply.c: optimize match_beginning/end processing a bit.
 + builtin-apply.c: make it more line oriented
 + builtin-apply.c: push match-beginning/end logic down
 + builtin-apply.c: restructure "offset" matching
 + builtin-apply.c: refactor small part that matches context

Further work on "apply --whitespace=fix".

----------------------------------------------------------------
[Actively Cooking]

* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits
 - diff: make --dirstat binary-file safe
 + Add "--dirstat" for some directory statistics

The first one already in 'next' is the latest toy Linus showed
off in his 2.6.25-rc2 announcement.  The other one on top is a
rework to make it work more sensibly with a tree with binary
contents.

* db/checkout (Wed Feb 20 15:54:54 2008 -0800) 16 commits
 + checkout: work from a subdirectory
 + checkout: tone down the "forked status" diagnostic messages
 + Clean up reporting differences on branch switch
 + builtin-checkout.c: fix possible usage segfault
 + checkout: notice when the switched branch is behind or forked
 + Build in checkout
 + Move code to clean up after a branch change to branch.c
 + Library function to check for unmerged index entries
 + Use diff -u instead of diff in t7201
 + Move create_branch into a library file
 + Build-in merge-recursive
 + Add "skip_unmerged" option to unpack_trees.
 + Discard "deleted" cache entries after using them to update the
   working tree
 + Send unpack-trees debugging output to stderr
 + Add flag to make unpack_trees() not print errors.
 + Allow callers of unpack_trees() to handle failure

Checkout rewritten in C.  With a few recent fixes, I think this
is approaching to be usable on "master".

* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits
 + diff --relative: help working in a bare repository
 + diff --relative: output paths as relative to the current
   subdirectory

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

----------------------------------------------------------------
[On Hold]

* gp/hash-stdin (Thu Feb 14 20:13:55 2008 +0000) 1 commit
 - hash-object: cleanup handling of command line options

I've touched Gerrit's original up somewhat and am still waiting
for a feedback.

* js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits
 - start_command(), if .in/.out > 0, closes file descriptors, not the
   callers
 - start_command(), .in/.out/.err = -1: Callers must close the file
   descriptor

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

There was a patch that uses this to implement "git-stash drop",
which I didn't queue, as the command name and the UI was
undecided yet.  Dscho was in favor of "pop" without "drop".

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

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

* Re: What's cooking in git.git (topics)
  2008-02-21  4:16           ` What's cooking in git.git (topics) Junio C Hamano
@ 2008-02-21 10:40             ` Johannes Schindelin
  2008-02-21 16:47               ` Junio C Hamano
  2008-02-22 18:47               ` Brandon Casey
  2008-02-25  8:40             ` Junio C Hamano
  1 sibling, 2 replies; 50+ messages in thread
From: Johannes Schindelin @ 2008-02-21 10:40 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Wed, 20 Feb 2008, Junio C Hamano wrote:

> ----------------------------------------------------------------
> [New Topics]
> 
> * js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits

Heh, now it gets confusing ;-) Three regular contributors with the same 
initials? ;-)

> * js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits
>  + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
>  + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler
> 
> This makes conflicting merges that have hunks separated by only
> a few common lines much easier to read.

The question is: what to do about ALNUM.  Use it in merge-recursive?  Make 
it a config variable?

> * db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit
>  + Resolve value supplied for no-colon push refspecs
> 
> Kills two birds with a commit by (1) fixing "git push $there +HEAD"
> to force the single push, and (2) allowing you to set
> "remote.$there.push = HEAD" so that "git push $there" will push
> only the current branch.

The question is now: should we initialise remote.origin.push to HEAD like 
you said?  And if so, shouldn't we have git-remote's "add" do the same?

Speaking of which, I think it would make sense to teach git-remote's "add" 
to detect if you are installing a remote "origin" and set up 
branch.$(git symbolic-ref HEAD).{remote,merge} like clone would.  After 
all, if you are setting up "origin", chances are that you just initialised 
a remote repository with your current one.

Thoughts?

> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>  + builtin-reflog.c: fix typo that accesses an unset variable
>  + Teach "git reflog" a subcommand to delete single entries
> 
> There was a patch that uses this to implement "git-stash drop",
> which I didn't queue, as the command name and the UI was
> undecided yet.  Dscho was in favor of "pop" without "drop".

Maybe it is time to "drop" this topic?

> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
>  - Move all dashed-form commands to libexecdir
> 
> Scheduled for 1.6.0.  I am not sure if we should merge this to
> 'next' before 1.5.5.  Most active people will be on 'next' and
> if we have this there, the resulting 1.5.5 release might end up
> having issues that come from differences this one introduces.

I think this is a good plan.  Better safe 'n sorry.

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2008-02-21 10:40             ` Johannes Schindelin
@ 2008-02-21 16:47               ` Junio C Hamano
  2008-02-22 18:47               ` Brandon Casey
  1 sibling, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-21 16:47 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> * js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits
>>  + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
>>  + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler
>> 
>> This makes conflicting merges that have hunks separated by only
>> a few common lines much easier to read.
>
> The question is: what to do about ALNUM.  Use it in merge-recursive?  Make 
> it a config variable?

I'd say we'll leave it as is for now and use it everywhere later
after making sure things work out Ok.

>> * db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit
>>  + Resolve value supplied for no-colon push refspecs
>> 
>> Kills two birds with a commit by (1) fixing "git push $there +HEAD"
>> to force the single push, and (2) allowing you to set
>> "remote.$there.push = HEAD" so that "git push $there" will push
>> only the current branch.
>
> The question is now: should we initialise remote.origin.push to HEAD like 
> you said?  And if so, shouldn't we have git-remote's "add" do the same?

Perhaps we do not do anything further for now, other than
telling shared repository people to put it in their config and
see how well the behaviour matches their expectation.  Protocol
extensions to let clone notice what the other end is can come
later (and we would need to do that anyway to set up HEAD symref
as well).  The same mechanism would be used in "git remote add",
and at that point clone could be implemented as "init/remote
add/fetch/checkout".

>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>>  + builtin-reflog.c: fix typo that accesses an unset variable
>>  + Teach "git reflog" a subcommand to delete single entries
>> 
>> There was a patch that uses this to implement "git-stash drop",
>> which I didn't queue, as the command name and the UI was
>> undecided yet.  Dscho was in favor of "pop" without "drop".
>
> Maybe it is time to "drop" this topic?

I've been waiting for somebody to come up with a clean "pop", as
it probably is easy enough and would be an itch people other
than you and me can scratch.

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

* Re: What's cooking in git.git (topics)
  2008-02-21 10:40             ` Johannes Schindelin
  2008-02-21 16:47               ` Junio C Hamano
@ 2008-02-22 18:47               ` Brandon Casey
  2008-02-22 18:56                 ` [PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring Brandon Casey
                                   ` (2 more replies)
  1 sibling, 3 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 18:47 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, git

Johannes Schindelin wrote:
> Hi,
> 
> On Wed, 20 Feb 2008, Junio C Hamano wrote:

>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>>  + builtin-reflog.c: fix typo that accesses an unset variable
>>  + Teach "git reflog" a subcommand to delete single entries
>>
>> There was a patch that uses this to implement "git-stash drop",
>> which I didn't queue, as the command name and the UI was
>> undecided yet.  Dscho was in favor of "pop" without "drop".
> 
> Maybe it is time to "drop" this topic?

The issue with drop or pop (for me) was that deleting a reflog
entry was causing error messages to be printed.

'reflog delete' can cause read_ref_at() to print an error message in
two ways.

  1) If a reflog entry is deleted in the middle of the reflog, then
     read_ref_at() will print an error message "warning: Log %s has
     gap after %s". This is a sanity check which checks that the
     previous reflog entry's "new" sha1 is equal to the current reflog
     entry's "old" sha1.

  2) If the top-most reflog entry does not match what is in refs/<ref>
     then read_ref_at() will print an error message "warning: Log %s
     unexpectedly ended on %s". This is another sanity check.

We can either disable these sanity checks, or change the code to ensure that
they pass, or do nothing in which case 'reflog delete' should probably be
removed.

For the first issue, we could rewrite the "old" sha1 while expiring reflog
entries. We would lose some of the meaning of reflog entries in this case.

For the second issue, the ref needs to be rewritten with the sha1 of the
top-most reflog entry. This makes sense for stash, but not for any other
ref.

I'm thinking that two new options to git-reflog are needed which will
implement the above two ideas. One will rewrite the "old" sha1 for each
reflog entry so that it points to the previous entry. The other will
update the ref so that it points at the top-most reflog entry.

thoughts? suggestion for the names for the options?

-brandon

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

* [PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring
  2008-02-22 18:47               ` Brandon Casey
@ 2008-02-22 18:56                 ` Brandon Casey
  2008-02-22 21:08                   ` [PATCH] reflog-delete: parse standard reflog options Brandon Casey
       [not found]                 ` <1203706541-21719-1-git-send-email-casey@nrlssc.navy.mil>
  2008-02-22 22:26                 ` What's cooking in git.git (topics) Junio C Hamano
  2 siblings, 1 reply; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 18:56 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

Certain sanity checks on the reflog assume that each entry will contain
a reference to the previous entry. i.e. that the "old" sha1 field of a
reflog entry will be equal to the "new" sha1 field of the previous entry.

When reflog entries are deleted, this assumption may not hold. This patch
adds a new option to git-reflog which causes the subcommands "expire" and
"delete" to rewrite the "old" sha1 field of each reflog entry so that it
points to the previous reflog entry.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---
 builtin-reflog.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/builtin-reflog.c b/builtin-reflog.c
index 77f70a6..f685d76 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -15,7 +15,7 @@
 static const char reflog_expire_usage[] =
 "git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...";
 static const char reflog_delete_usage[] =
-"git-reflog delete [--verbose] [--dry-run] <refs>...";
+"git-reflog delete [--verbose] [--dry-run] [--rewrite] <refs>...";
 
 static unsigned long default_reflog_expire;
 static unsigned long default_reflog_expire_unreachable;
@@ -24,6 +24,7 @@ struct cmd_reflog_expire_cb {
 	struct rev_info revs;
 	int dry_run;
 	int stalefix;
+	int rewrite;
 	int verbose;
 	unsigned long expire_total;
 	unsigned long expire_unreachable;
@@ -35,6 +36,7 @@ struct expire_reflog_cb {
 	const char *ref;
 	struct commit *ref_commit;
 	struct cmd_reflog_expire_cb *cmd;
+	unsigned char last_kept_sha1[20];
 };
 
 struct collected_reflog {
@@ -216,6 +218,9 @@ static int expire_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
 	if (timestamp < cb->cmd->expire_total)
 		goto prune;
 
+	if (cb->cmd->rewrite)
+		osha1 = cb->last_kept_sha1;
+
 	old = new = NULL;
 	if (cb->cmd->stalefix &&
 	    (!keep_entry(&old, osha1) || !keep_entry(&new, nsha1)))
@@ -243,6 +248,7 @@ static int expire_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
 			sha1_to_hex(osha1), sha1_to_hex(nsha1),
 			email, timestamp, sign, zone,
 			message);
+		hashcpy(cb->last_kept_sha1, nsha1);
 	}
 	if (cb->cmd->verbose)
 		printf("keep %s", message);
@@ -364,6 +370,8 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
 			cb.expire_unreachable = approxidate(arg + 21);
 		else if (!strcmp(arg, "--stale-fix"))
 			cb.stalefix = 1;
+		else if (!strcmp(arg, "--rewrite"))
+			cb.rewrite = 1;
 		else if (!strcmp(arg, "--all"))
 			do_all = 1;
 		else if (!strcmp(arg, "--verbose"))
@@ -433,6 +441,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
 		const char *arg = argv[i];
 		if (!strcmp(arg, "--dry-run") || !strcmp(arg, "-n"))
 			cb.dry_run = 1;
+		else if (!strcmp(arg, "--rewrite"))
+			cb.rewrite = 1;
 		else if (!strcmp(arg, "--verbose"))
 			cb.verbose = 1;
 		else if (!strcmp(arg, "--")) {
-- 
1.5.4.2.267.g38ea

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

* [PATCH 2/4] refs.c: make close_ref() and commit_ref() non-static
       [not found]                 ` <1203706541-21719-1-git-send-email-casey@nrlssc.navy.mil>
@ 2008-02-22 18:57                   ` Brandon Casey
       [not found]                   ` <1203706541-21719-2-git-send-email-casey@nrlssc.navy.mil>
  1 sibling, 0 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 18:57 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

This is in preparation to the reflog-expire changes which will
allow updating the ref after expiring the reflog.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---
 refs.c |    4 ++--
 refs.h |    6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/refs.c b/refs.c
index 67d2a50..bc65429 100644
--- a/refs.c
+++ b/refs.c
@@ -1018,7 +1018,7 @@ int rename_ref(const char *oldref, const char *newref, const char *logmsg)
 	return 1;
 }
 
-static int close_ref(struct ref_lock *lock)
+int close_ref(struct ref_lock *lock)
 {
 	if (close_lock_file(lock->lk))
 		return -1;
@@ -1026,7 +1026,7 @@ static int close_ref(struct ref_lock *lock)
 	return 0;
 }
 
-static int commit_ref(struct ref_lock *lock)
+int commit_ref(struct ref_lock *lock)
 {
 	if (commit_lock_file(lock->lk))
 		return -1;
diff --git a/refs.h b/refs.h
index 9cd16f8..06abee1 100644
--- a/refs.h
+++ b/refs.h
@@ -33,6 +33,12 @@ extern struct ref_lock *lock_ref_sha1(const char *ref, const unsigned char *old_
 #define REF_NODEREF	0x01
 extern struct ref_lock *lock_any_ref_for_update(const char *ref, const unsigned char *old_sha1, int flags);
 
+/** Close the file descriptor owned by a lock and return the status */
+extern int close_ref(struct ref_lock *lock);
+
+/** Close and commit the ref locked by the lock */
+extern int commit_ref(struct ref_lock *lock);
+
 /** Release any lock taken but not written. **/
 extern void unlock_ref(struct ref_lock *lock);
 
-- 
1.5.4.2.267.g38ea

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

* [PATCH 3/4] git-reflog: add option --updateref to write the last reflog sha1 into the ref
       [not found]                   ` <1203706541-21719-2-git-send-email-casey@nrlssc.navy.mil>
@ 2008-02-22 19:04                     ` Brandon Casey
       [not found]                     ` <1203706541-21719-3-git-send-email-casey@nrlssc.navy.mil>
  1 sibling, 0 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 19:04 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

Certain sanity checks on the reflog assume that the sha1 of the top reflog
entry will be equal to the sha1 stored in the ref.

When reflog entries are deleted, this assumption may not hold. This patch
adds a new option to git-reflog which causes the subcommands "expire" and
"delete" to update the ref with the sha1 of the top-most reflog entry.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---


This sucks in close_ref() and commit_ref() from refs.c. The changes to
expire_reflog() implement some of what write_ref_sha1() does. I guess
a new function in refs.c could have been made which instead of a logmsg
takes an updated reflog filename, but that seemed too contrived. We're
already modifying the reflog directly anyway, so maybe it's ok to modify
the ref directly too.

-brandon


 builtin-reflog.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/builtin-reflog.c b/builtin-reflog.c
index f685d76..280e24e 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -15,7 +15,7 @@
 static const char reflog_expire_usage[] =
 "git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...";
 static const char reflog_delete_usage[] =
-"git-reflog delete [--verbose] [--dry-run] [--rewrite] <refs>...";
+"git-reflog delete [--verbose] [--dry-run] [--rewrite] [--updateref] <refs>...";
 
 static unsigned long default_reflog_expire;
 static unsigned long default_reflog_expire_unreachable;
@@ -25,6 +25,7 @@ struct cmd_reflog_expire_cb {
 	int dry_run;
 	int stalefix;
 	int rewrite;
+	int updateref;
 	int verbose;
 	unsigned long expire_total;
 	unsigned long expire_unreachable;
@@ -292,10 +293,20 @@ static int expire_reflog(const char *ref, const unsigned char *sha1, int unused,
 			status |= error("%s: %s", strerror(errno),
 					newlog_path);
 			unlink(newlog_path);
+		} else if (cmd->updateref &&
+			(write_in_full(lock->lock_fd,
+				sha1_to_hex(cb.last_kept_sha1), 40) != 40 ||
+			 write_in_full(lock->lock_fd, "\n", 1) != 1 ||
+			 close_ref(lock) < 0)) {
+			status |= error("Couldn't write %s",
+				lock->lk->filename);
+			unlink(newlog_path);
 		} else if (rename(newlog_path, log_file)) {
 			status |= error("cannot rename %s to %s",
 					newlog_path, log_file);
 			unlink(newlog_path);
+		} else if (cmd->updateref && commit_ref(lock)) {
+			status |= error("Couldn't set %s", lock->ref_name);
 		}
 	}
 	free(newlog_path);
@@ -372,6 +383,8 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
 			cb.stalefix = 1;
 		else if (!strcmp(arg, "--rewrite"))
 			cb.rewrite = 1;
+		else if (!strcmp(arg, "--updateref"))
+			cb.updateref = 1;
 		else if (!strcmp(arg, "--all"))
 			do_all = 1;
 		else if (!strcmp(arg, "--verbose"))
@@ -443,6 +456,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
 			cb.dry_run = 1;
 		else if (!strcmp(arg, "--rewrite"))
 			cb.rewrite = 1;
+		else if (!strcmp(arg, "--updateref"))
+			cb.updateref = 1;
 		else if (!strcmp(arg, "--verbose"))
 			cb.verbose = 1;
 		else if (!strcmp(arg, "--")) {
-- 
1.5.4.2.267.g38ea

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

* [PATCH 4/4] git-stash: add new 'drop' subcommand
       [not found]                     ` <1203706541-21719-3-git-send-email-casey@nrlssc.navy.mil>
@ 2008-02-22 19:04                       ` Brandon Casey
  2008-02-22 22:52                         ` [PATCH] git-stash: add new 'pop' subcommand Brandon Casey
  0 siblings, 1 reply; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 19:04 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

This allows a single stash entry to be deleted. It takes an
optional argument which is a stash reflog entry. If no
arguments are supplied, it drops the most recent stash entry.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---
 Documentation/git-stash.txt |    7 ++++++-
 git-stash.sh                |   25 ++++++++++++++++++++++++-
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index 48e6f5a..f50c24c 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -8,7 +8,7 @@ git-stash - Stash the changes in a dirty working directory away
 SYNOPSIS
 --------
 [verse]
-'git-stash' (list | show [<stash>] | apply [<stash>] | clear)
+'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>])
 'git-stash' [save [<message>]]
 
 DESCRIPTION
@@ -85,6 +85,11 @@ clear::
 	Remove all the stashed states. Note that those states will then
 	be subject to pruning, and may be difficult or impossible to recover.
 
+drop [<stash>]::
+
+	Remove a single stashed state from the stash list. When no `<stash>`
+	is given, it removes the latest one. i.e. `stash@\{0}`
+
 
 DISCUSSION
 ----------
diff --git a/git-stash.sh b/git-stash.sh
index b00f888..caa0258 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Copyright (c) 2007, Nanako Shiraishi
 
-USAGE='[  | save | list | show | apply | clear | create ]'
+USAGE='[  | save | list | show | apply | clear | drop | create ]'
 
 SUBDIRECTORY_OK=Yes
 OPTIONS_SPEC=
@@ -196,6 +196,25 @@ apply_stash () {
 	fi
 }
 
+drop_stash () {
+	have_stash || die 'No stash entries to drop'
+
+	test $# = 0 && set -- "$ref_stash@{0}"
+
+	# Verify supplied argument looks like a stash entry
+	s=$(git rev-parse --revs-only --no-flags "$@") &&
+	git rev-parse --verify "$s:"   > /dev/null 2>&1 &&
+	git rev-parse --verify "$s^1:" > /dev/null 2>&1 &&
+	git rev-parse --verify "$s^2:" > /dev/null 2>&1 ||
+		die "$*: not a valid stashed state"
+
+	git reflog delete --updateref --rewrite "$@" &&
+		echo "Dropped $* ($s)" || die "$*: Could not drop stash entry"
+
+	# clear_stash if we just dropped the last stash entry
+	git rev-parse --verify "$ref_stash@{0}" > /dev/null 2>&1 || clear_stash
+}
+
 # Main command set
 case "$1" in
 list)
@@ -230,6 +249,10 @@ create)
 	fi
 	create_stash "$*" && echo "$w_commit"
 	;;
+drop)
+	shift
+	drop_stash "$@"
+	;;
 *)
 	if test $# -eq 0
 	then
-- 
1.5.4.2.267.g38ea

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

* [PATCH] reflog-delete: parse standard reflog options
  2008-02-22 18:56                 ` [PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring Brandon Casey
@ 2008-02-22 21:08                   ` Brandon Casey
  0 siblings, 0 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 21:08 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

Add support for some standard reflog options such as --dry-run and
--verbose to the reflog delete subcommand.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---


Oops.
I forgot to send this patch. The reflog patch set I sent should be
applied on top of this one. Sorry.

-brandon


 builtin-reflog.c |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/builtin-reflog.c b/builtin-reflog.c
index 8af75bc..77f70a6 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -14,6 +14,8 @@
 
 static const char reflog_expire_usage[] =
 "git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...";
+static const char reflog_delete_usage[] =
+"git-reflog delete [--verbose] [--dry-run] <refs>...";
 
 static unsigned long default_reflog_expire;
 static unsigned long default_reflog_expire_unreachable;
@@ -425,12 +427,28 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
 	struct cmd_reflog_expire_cb cb;
 	int i, status = 0;
 
-	if (argc < 2)
-		return error("Nothing to delete?");
-
 	memset(&cb, 0, sizeof(cb));
 
 	for (i = 1; i < argc; i++) {
+		const char *arg = argv[i];
+		if (!strcmp(arg, "--dry-run") || !strcmp(arg, "-n"))
+			cb.dry_run = 1;
+		else if (!strcmp(arg, "--verbose"))
+			cb.verbose = 1;
+		else if (!strcmp(arg, "--")) {
+			i++;
+			break;
+		}
+		else if (arg[0] == '-')
+			usage(reflog_delete_usage);
+		else
+			break;
+	}
+
+	if (argc - i < 1)
+		return error("Nothing to delete?");
+
+	for ( ; i < argc; i++) {
 		const char *spec = strstr(argv[i], "@{");
 		unsigned char sha1[20];
 		char *ep, *ref;
-- 
1.5.4.2.267.g38ea

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

* Re: What's cooking in git.git (topics)
  2008-02-22 18:47               ` Brandon Casey
  2008-02-22 18:56                 ` [PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring Brandon Casey
       [not found]                 ` <1203706541-21719-1-git-send-email-casey@nrlssc.navy.mil>
@ 2008-02-22 22:26                 ` Junio C Hamano
  2008-02-23  0:19                   ` Brandon Casey
  2 siblings, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-22 22:26 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Johannes Schindelin, git

Brandon Casey <casey@nrlssc.navy.mil> writes:

> Johannes Schindelin wrote:
>> Hi,
>> 
>> On Wed, 20 Feb 2008, Junio C Hamano wrote:
>
>>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>>>  + builtin-reflog.c: fix typo that accesses an unset variable
>>>  + Teach "git reflog" a subcommand to delete single entries
>>>
>>> There was a patch that uses this to implement "git-stash drop",
>>> which I didn't queue, as the command name and the UI was
>>> undecided yet.  Dscho was in favor of "pop" without "drop".
>> 
>> Maybe it is time to "drop" this topic?
>
> The issue with drop or pop (for me) was that deleting a reflog
> entry was causing error messages to be printed.

I agree with your analysis, and I am tempted to suggest just the
simplest option.

The thing is, unless it is a reflog used to implement stash,
removing an entry in the middle and adjusting an entry before
and after it, just to fool and squelch the consistency mechanism
we explicitly have for safety, feels quite wrong.  Especially
given that the whole point of the reflog is to allow you to
recover your branch to a particular point in time safely.

So I'd rather see us remove "reflog delete" and add "reflog pop"
which resets the ref itself to the previous point and deletes
the last reflog entry.  Then "stash pop" would become simply
"stash apply" followed by "reflog pop".

We might need to introduce "stash push" which would be a synonym
for "stash pop" for symmetry.  Also we may want to introduce a
stash per branch if we do this.

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

* [PATCH] git-stash: add new 'pop' subcommand
  2008-02-22 19:04                       ` [PATCH 4/4] git-stash: add new 'drop' subcommand Brandon Casey
@ 2008-02-22 22:52                         ` Brandon Casey
  0 siblings, 0 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-22 22:52 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing List

This combines the existing stash subcommands 'apply' and 'drop' to
allow a single stash entry to be applied and then dropped, in other
words 'popped', from the stash list.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---


For completeness, here is stash pop.

-brandon


 Documentation/git-stash.txt |    8 +++++++-
 git-stash.sh                |   10 +++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index f50c24c..8dc35d4 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -8,7 +8,7 @@ git-stash - Stash the changes in a dirty working directory away
 SYNOPSIS
 --------
 [verse]
-'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>])
+'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>] | pop [<stash>])
 'git-stash' [save [<message>]]
 
 DESCRIPTION
@@ -90,6 +90,12 @@ drop [<stash>]::
 	Remove a single stashed state from the stash list. When no `<stash>`
 	is given, it removes the latest one. i.e. `stash@\{0}`
 
+pop [<stash>]::
+
+	Remove a single stashed state from the stash list and apply on top
+	of the current working tree state. When no `<stash>` is given,
+	`stash@\{0}` is assumed. See also `apply`.
+
 
 DISCUSSION
 ----------
diff --git a/git-stash.sh b/git-stash.sh
index caa0258..297d12d 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Copyright (c) 2007, Nanako Shiraishi
 
-USAGE='[  | save | list | show | apply | clear | drop | create ]'
+USAGE='[  | save | list | show | apply | clear | drop | pop | create ]'
 
 SUBDIRECTORY_OK=Yes
 OPTIONS_SPEC=
@@ -253,6 +253,14 @@ drop)
 	shift
 	drop_stash "$@"
 	;;
+pop)
+	shift
+	if apply_stash "$@"
+	then
+		test -z "$unstash_index" || shift
+		drop_stash "$@"
+	fi
+	;;
 *)
 	if test $# -eq 0
 	then
-- 
1.5.4.2.267.g38ea.dirty

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

* Re: What's cooking in git.git (topics)
  2008-02-22 22:26                 ` What's cooking in git.git (topics) Junio C Hamano
@ 2008-02-23  0:19                   ` Brandon Casey
  2008-02-23  0:29                     ` Junio C Hamano
  2008-02-23  0:51                     ` Junio C Hamano
  0 siblings, 2 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-23  0:19 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, git

Junio C Hamano wrote:
> Brandon Casey <casey@nrlssc.navy.mil> writes:
> 
>> Johannes Schindelin wrote:
>>> Hi,
>>>
>>> On Wed, 20 Feb 2008, Junio C Hamano wrote:
>>>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits
>>>>  + builtin-reflog.c: fix typo that accesses an unset variable
>>>>  + Teach "git reflog" a subcommand to delete single entries
>>>>
>>>> There was a patch that uses this to implement "git-stash drop",
>>>> which I didn't queue, as the command name and the UI was
>>>> undecided yet.  Dscho was in favor of "pop" without "drop".
>>> Maybe it is time to "drop" this topic?
>> The issue with drop or pop (for me) was that deleting a reflog
>> entry was causing error messages to be printed.
> 
> I agree with your analysis, and I am tempted to suggest just the
> simplest option.
> 
> The thing is, unless it is a reflog used to implement stash,
> removing an entry in the middle and adjusting an entry before
> and after it, just to fool and squelch the consistency mechanism
> we explicitly have for safety, feels quite wrong.  Especially
> given that the whole point of the reflog is to allow you to
> recover your branch to a particular point in time safely.

Just to clarify, only the entry _after_ has to be adjusted.

If the primary reason for the old sha1 field is to be able to check
the reflog for consistency, then maybe it makes sense to adjust this
field. It's not used when resetting to a particular reflog entry is it?

We do lose something. The reflog entry conveys a transition _from_
a state _to_ a state. If the reflog entry is adjusted, the _from_
state is modified. But I think you would have to manually read the
reflog file to see this information right? The fact that this
information is lost is why I didn't feel comfortable adjusting the
reflog entries by default. In the case of stash, this information
is uninteresting.

> So I'd rather see us remove "reflog delete" and add "reflog pop"
> which resets the ref itself to the previous point and deletes
> the last reflog entry.  Then "stash pop" would become simply
> "stash apply" followed by "reflog pop".

The patch series I sent would allow this with

    git reflog delete --updateref stash@{0}

I don't think that satisfies the requests though. People wanted to
be able to delete any entries in the stash list.

Is any of this currently useful outside of stash? I don't know
enough to know why someone would want to modify the ref without
resetting at least the index and that is what git-reset is for.
Also, outside of stash, I don't know why someone would want to
delete individual reflog entries.

> We might need to introduce "stash push" which would be a synonym
> for "stash pop" for symmetry.

I like "stash push" if you mean _antonym_ and not _synonym_.

"stash pop" and "stash push" would be antonyms (opposite meaning).
"stash push" and "stash save" would be synonyms (same meaning).

>  Also we may want to introduce a stash per branch if we do this.

This isn't necessary for how I use stash.

-brandon

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

* Re: What's cooking in git.git (topics)
  2008-02-23  0:19                   ` Brandon Casey
@ 2008-02-23  0:29                     ` Junio C Hamano
  2008-02-23  0:51                     ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-02-23  0:29 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Johannes Schindelin, git

Brandon Casey <casey@nrlssc.navy.mil> writes:

> Junio C Hamano wrote:
>
>> We might need to introduce "stash push" which would be a synonym
>> for "stash pop" for symmetry.
>
> I like "stash push" if you mean _antonym_ and not _synonym_.

Heh, I obviously meant synonym "push == save", to give feeling
of symmetry between "push" and "pop", instead of "save" and "pop".

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

* Re: What's cooking in git.git (topics)
  2008-02-23  0:19                   ` Brandon Casey
  2008-02-23  0:29                     ` Junio C Hamano
@ 2008-02-23  0:51                     ` Junio C Hamano
  2008-02-23  2:43                       ` Brandon Casey
  1 sibling, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-23  0:51 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Johannes Schindelin, git

Brandon Casey <casey@nrlssc.navy.mil> writes:

> Junio C Hamano wrote:
>
>>  Also we may want to introduce a stash per branch if we do this.
>
> This isn't necessary for how I use stash.

That's what I thought initially.  But after thinking about it a
bit, I do not think so anymore.

It feels limiting not to be able to stash here and unstash
there.  You cannot stash on one branch and apply on another as
easily (you should still be able to, by naming the stash
explicitly, if you really wanted to).

But why would one even want to?  "What I've been hacking on is
getting into a good shape but now I noticed I was on a wrong
branch", is probably the only reason.  But that is what branch
switching "git checkout" (and its -m variant) does.  If your
changes are something that would make "checkout -m" conflict,
stashing and unstashing will result in the same conflict anyway,
so nothing is lost.

And there are obvious advantages to per-branch stash.  "stash
list" would contain only changes related to the current branch
by default for one thing.  "stash apply" without parameter would
be context sensitive as well.

By the way, I also thought that "pop instead of delete" was too
limiting.  I tried to like "pop" and wanted to justify it, but I
suspect it would invite user grief in this sequence:

        hack hack, gets interrupted
        git stash
        switch to another branch, service interrupt, and come back
        git stash pop
        hack hack, oops, I made a mess.

And earlier stash point was in a much better shape, but it has already
been lost.

While the workflow with the current stash would be:
        
        hack hack, gets interrupted
        git stash
        switch to another branch, service interrupt, and come back
        git stash apply
        hack hack, oops, I made a mess.
        git reset --hard
        git stash apply
        git commit
        git stash clear

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

* Re: What's cooking in git.git (topics)
  2008-02-23  0:51                     ` Junio C Hamano
@ 2008-02-23  2:43                       ` Brandon Casey
  0 siblings, 0 replies; 50+ messages in thread
From: Brandon Casey @ 2008-02-23  2:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, git

Junio C Hamano wrote:
> Brandon Casey <casey@nrlssc.navy.mil> writes:
> 
>> Junio C Hamano wrote:
>>
>>>  Also we may want to introduce a stash per branch if we do this.
>> This isn't necessary for how I use stash.
> 
> That's what I thought initially.  But after thinking about it a
> bit, I do not think so anymore.
> 
> It feels limiting not to be able to stash here and unstash
> there.  You cannot stash on one branch and apply on another as
> easily (you should still be able to, by naming the stash
> explicitly, if you really wanted to).
> 
> But why would one even want to?  "What I've been hacking on is
> getting into a good shape but now I noticed I was on a wrong
> branch", is probably the only reason.  But that is what branch
> switching "git checkout" (and its -m variant) does.  If your
> changes are something that would make "checkout -m" conflict,
> stashing and unstashing will result in the same conflict anyway,
> so nothing is lost.

Ok, I had to read that more than once, but you've convinced me.
per-branch stash is interesting.

-brandon

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

* What's cooking in git.git (topics)
  2008-02-21  4:16           ` What's cooking in git.git (topics) Junio C Hamano
  2008-02-21 10:40             ` Johannes Schindelin
@ 2008-02-25  8:40             ` Junio C Hamano
  2008-02-28  0:45               ` Junio C Hamano
  1 sibling, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-25  8:40 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* sp/describe (Sun Feb 24 03:07:33 2008 -0500) 5 commits
 + Use git-describe --exact-match in bash prompt on detached HEAD
 + Teach git-describe --exact-match to avoid expensive tag searches
 + Avoid accessing non-tag refs in git-describe unless --all is
   requested
 + Teach git-describe to use peeled ref information when scanning
   tags
 + Optimize peel_ref for the current ref of a for_each_ref callback

 (should go to 'master' soon)

* bc/reflog-fix (Fri Feb 22 12:47:08 2008 -0600) 1 commit
 + builtin-reflog.c: don't install new reflog on write failure

 (should go to 'master' soon)

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* ae/pack-autothread (Fri Feb 22 20:12:58 2008 -0600) 2 commits
 + pack-objects: Print a message describing the number of threads for
   packing
 + pack-objects: Add runtime detection of online CPU's

 (should go to 'master' soon)

* jm/free (Thu Jan 31 18:26:32 2008 +0100) 1 commit
 + Avoid unnecessary "if-before-free" tests.

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

----------------------------------------------------------------
[Graduated to "master"]

* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits

Further work on "apply --whitespace=fix".

* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits

----------------------------------------------------------------
[Will merge to "master" soon]

* db/host-alias (Sun Feb 24 22:25:04 2008 -0800) 3 commits
 + url rewriting: take longest and first match
 + Add support for url aliases in config files
 + Use ALLOC_GROW in remote.{c,h}

Allows URLs used in pushing and fetching to be rewritten.

* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit
 + Resolve value supplied for no-colon push refspecs

Kills two birds with a commit by (1) fixing "git push $there +HEAD"
to force the single push, and (2) allowing you to set
"remote.$there.push = HEAD" so that "git push $there" will push
only the current branch.

* db/checkout (Sat Feb 23 15:45:19 2008 -0800) 21 commits
 + checkout: error out when index is unmerged even with -m
 + checkout: show progress when checkout takes long time while
   switching branches
 + Add merge-subtree back
 + checkout: updates to tracking report
 + builtin-checkout.c: Remove unused prefix arguments in
   switch_branches path
 + checkout: work from a subdirectory
 + checkout: tone down the "forked status" diagnostic messages
 + Clean up reporting differences on branch switch
 + builtin-checkout.c: fix possible usage segfault
 + checkout: notice when the switched branch is behind or forked
 + Build in checkout
 + Move code to clean up after a branch change to branch.c
 + Library function to check for unmerged index entries
 + Use diff -u instead of diff in t7201
 + Move create_branch into a library file
 + Build-in merge-recursive
 + Add "skip_unmerged" option to unpack_trees.
 + Discard "deleted" cache entries after using them to update the
   working tree
 + Send unpack-trees debugging output to stderr
 + Add flag to make unpack_trees() not print errors.
 + Allow callers of unpack_trees() to handle failure

Checkout rewritten in C.

* gp/hash-stdin (Thu Feb 21 10:06:47 2008 +0000) 1 commit
 + hash-object: cleanup handling of command line options

* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits
 + diff --relative: help working in a bare repository
 + diff --relative: output paths as relative to the current
   subdirectory

* js/run-command (Thu Feb 21 23:42:56 2008 +0100) 2 commits
 + start_command(), if .in/.out > 0, closes file descriptors, not the
   callers
 + start_command(), .in/.out/.err = -1: Callers must close the file
   descriptor

* jk/help-alias (Sun Feb 24 17:17:37 2008 -0500) 3 commits
 + help: respect aliases
 + make alias lookup a public, procedural function
 + help: use parseopt

* cw/bisect (Sat Feb 23 17:14:17 2008 -0800) 1 commit
 + Eliminate confusing "won't bisect on seeked tree" failure

* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits
 + doc: documentation update for the branch track changes
 + branch: optionally setup branch.*.merge from upstream local
   branches

This allows you to automatically set up tracking even when forking
from a local branch; it builds on top of Daniel's "checkout in C".

* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits
 + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
 + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler

This makes conflicting merges that have hunks separated by only
a few common lines much easier to read.

* db/cover-letter (Sat Feb 23 09:41:56 2008 +0100) 9 commits
 + t4014: Replace sed's non-standard 'Q' by standard 'q'
 + Support a --cc=<email> option in format-patch
 + Combine To: and Cc: headers
 + Fix format.headers not ending with a newline
 + Add tests for extra headers in format-patch
 + Add a --cover-letter option to format-patch
 + Export some email and pretty-printing functions
 + Improve message-id generation flow control for format-patch
 + Add more tests for format-patch

Teaches format-patch to optionally generate cover letters.
Several people on the list have had good success stories to
tell, which is very encouraging.

----------------------------------------------------------------
[Actively Cooking]

* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 10 commits
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: don't install new reflog on write failure
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

I think this needs tests for both high-level ("stash drop" and
"stash pop") and low-level ("reflog delete --rewrite" and
"reflog delete --updateref"), but otherwise the series looks in
a very good shape.

----------------------------------------------------------------
[On Hold]

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

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

* What's cooking in git.git (topics)
  2008-02-25  8:40             ` Junio C Hamano
@ 2008-02-28  0:45               ` Junio C Hamano
  2008-03-01 20:15                 ` Junio C Hamano
  0 siblings, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-02-28  0:45 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits
 + daemon: ensure that base-path is an existing directory
 + daemon: send more error messages to the syslog

* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit
 + git-svn: Don't prompt for client cert password everytime.

* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit
 + git-describe: --long shows the object name even for a tagged
   commit

* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits
 - receive-pack: use strict mode for unpacking objects
 - index-pack: introduce checking mode
 - unpack-objects: prevent writing of inconsistent objects
 - unpack-object: cache for non written objects
 - add common fsck error printing function
 - builtin-fsck: move common object checking code to fsck.c
 - builtin-fsck: reports missing parent commits
 - Remove unused object-ref code
 - builtin-fsck: move away from object-refs to fsck_walk
 - add generic, type aware object chain walker

* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits
 + gitweb: Clearly distinguish regexp / exact match searches
 + gitweb: Simplify fixed string search
 + gitweb: Change parse_commits signature to allow for multiple
   options

* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit
 + git-remote: do not complain on multiple URLs for a remote

* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits
 - http-push: add regression tests
 - http-push: push <remote> :<branch> deletes remote branch

* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit
 - Set proxy override with http_init()

----------------------------------------------------------------
[Graduated to "master"]

* ae/pack-autothread (Fri Feb 22 20:12:58 2008 -0600)

Adds runtime detection of online CPU's

* sp/describe (Sun Feb 24 03:07:33 2008 -0500)

A new --exact-match option describes only tagged commits

* bc/reflog-fix (Fri Feb 22 12:47:08 2008 -0600)

* db/host-alias (Sun Feb 24 22:25:04 2008 -0800)

Allows URLs used in pushing and fetching to be rewritten.

* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500)

Kills two birds with a commit by (1) fixing "git push $there +HEAD"
to force the single push, and (2) allowing you to set
"remote.$there.push = HEAD" so that "git push $there" will push
only the current branch.

* db/checkout (Sat Feb 23 15:45:19 2008 -0800)

Checkout rewritten in C.

* gp/hash-stdin (Thu Feb 21 10:06:47 2008 +0000)

* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits

"diff --relative" outputs paths as relative to the current
subdirectory.

* js/run-command (Thu Feb 21 23:42:56 2008 +0100) 2 commits

API clean-ups.

* jk/help-alias (Sun Feb 24 17:17:37 2008 -0500) 3 commits

Shows aliases in "git help"

* cw/bisect (Sat Feb 23 17:14:17 2008 -0800) 1 commit

Fixes "won't bisect on seeked tree".

* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits

This allows you to automatically set up tracking even when forking
from a local branch; it builds on top of Daniel's "checkout in C".

* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits

This makes conflicting merges that have hunks separated by only
a few common lines much easier to read.

* db/cover-letter (Sat Feb 23 09:41:56 2008 +0100) 9 commits

Teaches format-patch to optionally generate cover letters.

* jm/free (Thu Jan 31 18:26:32 2008 +0100)

Drops unnecessary "if-before-free" tests.

----------------------------------------------------------------
[Actively Cooking]

* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 9 commits
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

I think this needs tests for both high-level ("stash drop" and
"stash pop") and low-level ("reflog delete --rewrite" and
"reflog delete --updateref"), but otherwise the series looks in
a very good shape.

----------------------------------------------------------------
[On Hold]

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

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

* What's cooking in git.git (topics)
  2008-02-28  0:45               ` Junio C Hamano
@ 2008-03-01 20:15                 ` Junio C Hamano
  2008-03-02 14:02                   ` Shawn O. Pearce
  2008-03-03  2:06                   ` Junio C Hamano
  0 siblings, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-03-01 20:15 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits
 - Teach git-fetch to grab a tag at the same time as a commit
 - Make git-fetch follow tags we already have objects for sooner
 - Teach upload-pack to log the received need lines to fd 3
 - Allow builtin-fetch's find_non_local_tags to append onto a list
 - Ensure tail pointer gets setup correctly when we fetch HEAD only
 - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
 - Remove unused variable in builtin-fetch find_non_local_tags

A few existing tests in 5515 need to be adjusted as they expect tags not
to be fetched early, but the point of this series is to optimize to allow
them to, under some conditions.  Otherwise slated for 1.5.5.

* pb/cvsimport (Thu Feb 28 11:18:23 2008 +0100) 3 commits
 + cvsimport: document that -M can be used multiple times
 + cvsimport: allow for multiple -M options
 + cvsimport: have default merge regex allow for dashes in the branch
   name

Slated for 1.5.5.

* nd/worktree (Wed Feb 27 23:40:45 2008 +0700) 9 commits
 - Documentation: update api-builtin and api-setup
 - Make setup_git_directory() auto-setup worktree if found
 - builtin-archive: mark unused prefix "unused_prefix"
 - Completely move out worktree setup from
   setup_git_directory_gently()
 - http-push: Avoid calling setup_git_directory() twice
 - Make setup_work_tree() return new prefix
 - Make get_git_dir() and 'git rev-parse --git-dir' absolute path
 - Make sure setup_git_directory is called before accessing
   repository
 - "git read-tree -m" and the like require worktree

The first one needs replacement as it breaks "read-tree -i", I think.

* sp/describe-tag (Thu Feb 28 01:22:36 2008 -0500) 1 commit
 - Teach git-describe to verify annotated tag names before output

Slated for 1.5.5.

* jc/maint-log-merge-left-right (Tue Feb 26 23:18:38 2008 -0800) 1 commit
 + Fix "git log --merge --left-right"

Soon to be in 'master' and then 'maint'.

* np/verify-pack (Thu Feb 28 00:25:20 2008 -0500) 4 commits
 + add storage size output to 'git verify-pack -v'
 + fix unimplemented packed_object_info_detail() features
 + make verify_one_pack() a bit less wrong wrt packed_git structure
 + factorize revindex code out of builtin-pack-objects.c

Slated for 1.5.5.

* js/remote (Fri Feb 29 01:46:07 2008 +0000) 5 commits
 + builtin-remote: prune remotes correctly that were added with --
   mirror
 + Make git-remote a builtin
 + Test "git remote show" and "git remote prune"
 + parseopt: add flag to stop on first non option
 + path-list: add functions to work with unsorted lists

Slated for 1.5.5.

----------------------------------------------------------------
[Merge to "master" soon, Slated for 1.5.5]

* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits
 + daemon: ensure that base-path is an existing directory
 + daemon: send more error messages to the syslog

* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit
 + git-svn: Don't prompt for client cert password everytime.

* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit
 + git-describe: --long shows the object name even for a tagged
   commit

* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits
 + receive-pack: use strict mode for unpacking objects
 + index-pack: introduce checking mode
 + unpack-objects: prevent writing of inconsistent objects
 + unpack-object: cache for non written objects
 + add common fsck error printing function
 + builtin-fsck: move common object checking code to fsck.c
 + builtin-fsck: reports missing parent commits
 + Remove unused object-ref code
 + builtin-fsck: move away from object-refs to fsck_walk
 + add generic, type aware object chain walker

* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits
 + gitweb: Clearly distinguish regexp / exact match searches
 + gitweb: Simplify fixed string search
 + gitweb: Change parse_commits signature to allow for multiple
   options

* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit
 + git-remote: do not complain on multiple URLs for a remote

* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits
 + http-push: add regression tests
 + http-push: push <remote> :<branch> deletes remote branch

* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit
 + Set proxy override with http_init()

----------------------------------------------------------------
[Actively Cooking]

* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 9 commits
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

I think this needs tests for both high-level ("stash drop" and
"stash pop") and low-level ("reflog delete --rewrite" and
"reflog delete --updateref"), but otherwise the series looks in
a very good shape.  Slated for 1.5.5 iff tests materialize.

----------------------------------------------------------------
[On Hold]

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

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

* Re: What's cooking in git.git (topics)
  2008-03-01 20:15                 ` Junio C Hamano
@ 2008-03-02 14:02                   ` Shawn O. Pearce
  2008-03-03  2:06                   ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Shawn O. Pearce @ 2008-03-02 14:02 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> wrote:
> * sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits
>  - Teach git-fetch to grab a tag at the same time as a commit
>  - Make git-fetch follow tags we already have objects for sooner
>  - Teach upload-pack to log the received need lines to fd 3
>  - Allow builtin-fetch's find_non_local_tags to append onto a list
>  - Ensure tail pointer gets setup correctly when we fetch HEAD only
>  - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
>  - Remove unused variable in builtin-fetch find_non_local_tags
> 
> A few existing tests in 5515 need to be adjusted as they expect tags not
> to be fetched early, but the point of this series is to optimize to allow
> them to, under some conditions.  Otherwise slated for 1.5.5.

Really?  I thought 5515 was passing when I sent the v2 series in.
I'll double check it later today.  Prior to my "Teach upload-pack
to log" change I'm not sure *how* the tests in 5515 would notice
that tags were fetched on the first connection and not the second.
Its still in the same git-fetch process.
 
-- 
Shawn.

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

* What's cooking in git.git (topics)
  2008-03-01 20:15                 ` Junio C Hamano
  2008-03-02 14:02                   ` Shawn O. Pearce
@ 2008-03-03  2:06                   ` Junio C Hamano
  2008-03-06  5:49                     ` Junio C Hamano
  1 sibling, 1 reply; 50+ messages in thread
From: Junio C Hamano @ 2008-03-03  2:06 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits
 - Add a very basic test script for git mergetool
 - Teach git mergetool to use custom commands defined at config time
 - Changed an internal variable of mergetool to support custom
   commands
 - Tidy up git mergetool's backup file behaviour

* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits
 - log/show/whatchanged: introduce format.pretty configuration
 - specify explicit "--pretty=medium" with `git log/show/whatchanged`
 - whatchanged documentation: share description of --pretty with
   others

* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits
 + parse-options: new option type to treat an option-like parameter
   as an argument.
 + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --
   parseopt

* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits
 - Additional tests to capture worktree special cases
 - Documentation: update api-builtin and api-setup
 - Make setup_git_directory() auto-setup worktree if found
 - builtin-archive: mark unused prefix "unused_prefix"
 - Completely move out worktree setup from
   setup_git_directory_gently()
 - http-push: Avoid calling setup_git_directory() twice
 - Make setup_work_tree() return new prefix
 - Make get_git_dir() and 'git rev-parse --git-dir' absolute path
 - Make sure setup_git_directory is called before accessing
   repository
 - "git read-tree -m" and the like require worktree

Replaced from the early ones in 'pu'.

----------------------------------------------------------------
[Graduated to "master"]

* np/verify-pack (Thu Feb 28 00:25:20 2008 -0500) 4 commits
 + add storage size output to 'git verify-pack -v'
 + fix unimplemented packed_object_info_detail() features
 + make verify_one_pack() a bit less wrong wrt packed_git structure
 + factorize revindex code out of builtin-pack-objects.c

* sp/describe-tag (Thu Feb 28 01:22:36 2008 -0500) 1 commit
 - Teach git-describe to verify annotated tag names before output

* jc/maint-log-merge-left-right (Tue Feb 26 23:18:38 2008 -0800) 1 commit
 + Fix "git log --merge --left-right"

* pb/cvsimport (Thu Feb 28 11:18:23 2008 +0100) 3 commits
 + cvsimport: document that -M can be used multiple times
 + cvsimport: allow for multiple -M options
 + cvsimport: have default merge regex allow for dashes in the branch
   name

* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits
 + daemon: ensure that base-path is an existing directory
 + daemon: send more error messages to the syslog

* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit
 + git-svn: Don't prompt for client cert password everytime.

* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit
 + git-describe: --long shows the object name even for a tagged
   commit

* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits
 + receive-pack: use strict mode for unpacking objects
 + index-pack: introduce checking mode
 + unpack-objects: prevent writing of inconsistent objects
 + unpack-object: cache for non written objects
 + add common fsck error printing function
 + builtin-fsck: move common object checking code to fsck.c
 + builtin-fsck: reports missing parent commits
 + Remove unused object-ref code
 + builtin-fsck: move away from object-refs to fsck_walk
 + add generic, type aware object chain walker

* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits
 + gitweb: Clearly distinguish regexp / exact match searches
 + gitweb: Simplify fixed string search
 + gitweb: Change parse_commits signature to allow for multiple
   options

* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit
 + git-remote: do not complain on multiple URLs for a remote

* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits
 + http-push: add regression tests
 + http-push: push <remote> :<branch> deletes remote branch

* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit
 + Set proxy override with http_init()

----------------------------------------------------------------
[Actively Cooking]

* js/remote (Sun Mar 2 05:31:59 2008 +0000) 6 commits
 - remote show: Clean up connection correctly if object fetch wasn't
   done
 + builtin-remote: prune remotes correctly that were added with --
   mirror
 + Make git-remote a builtin
 + Test "git remote show" and "git remote prune"
 + parseopt: add flag to stop on first non option
 + path-list: add functions to work with unsorted lists

Slated for 1.5.5.

* sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits
 - Teach git-fetch to grab a tag at the same time as a commit
 - Make git-fetch follow tags we already have objects for sooner
 - Teach upload-pack to log the received need lines to fd 3
 - Allow builtin-fetch's find_non_local_tags to append onto a list
 - Ensure tail pointer gets setup correctly when we fetch HEAD only
 - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
 - Remove unused variable in builtin-fetch find_non_local_tags

A few existing tests in 5515 need to be adjusted as they expect tags not
to be fetched early, but the point of this series is to optimize to allow
them to, under some conditions.  Otherwise slated for 1.5.5.

* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits
 - t3903-stash.sh: Add tests for new stash commands drop and pop
 - git-reflog.txt: Document new commands --updateref and --rewrite
 - t3903-stash.sh: Add missing '&&' to body of testcase
 - Merge commit '7435982102093179474a128648179a44042d8a1c' into
   bc/stash
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

Slated for 1.5.5.

----------------------------------------------------------------
[On Hold]

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits
 - Bulk allocate diff_filepair
 - patch freeable-bulk-alloc

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

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

* Re: What's cooking in git.git (topics)
  2008-03-03  2:06                   ` Junio C Hamano
@ 2008-03-06  5:49                     ` Junio C Hamano
  2008-03-06 17:01                       ` Johannes Schindelin
  2008-03-08  9:38                       ` Junio C Hamano
  0 siblings, 2 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-03-06  5:49 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

Most of these are for 1.5.5 but parked in 'next' or 'pu' for now.

* ml/submodule-add-existing (Tue Mar 4 20:15:02 2008 -0500) 1 commit
 + git-submodule - Allow adding a submodule in-place

* jc/describe-always (Sun Mar 2 08:51:57 2008 -0800) 1 commit
 + describe --always: fall back to showing an abbreviated object name

* aw/maint-shortlog-blank-lines (Wed Mar 5 14:24:10 2008 +0000) 1 commit
 + shortlog: take the first populated line of the description

* ar/sgid-bsd (Wed Mar 5 00:15:39 2008 +0100) 1 commit
 + Do not use GUID on dir in git init --shared=all on FreeBSD

* jn/gitweb-pickaxe (Wed Mar 5 09:31:55 2008 +0100) 1 commit
 + gitweb: Fix and simplify pickaxe search

* cr/reset-parseopt (Tue Mar 4 23:11:34 2008 +0100) 1 commit
 + Make builtin-reset.c use parse_options.

* mr/compat-snprintf (Wed Mar 5 16:46:13 2008 +0100) 1 commit
 + Add compat/snprintf.c for systems that return bogus

* jc/am (Tue Mar 4 00:25:06 2008 -0800) 3 commits
 + am: --rebasing
 + am: remove support for -d .dotest
 + am: read from the right mailbox when started from a subdirectory

* cc/run-command (Wed Mar 5 08:35:16 2008 +0100) 1 commit
 + run-command: Redirect stderr to a pipe before redirecting stdout
   to stderr

* jc/unpack-careful (Mon Feb 25 22:46:13 2008 +0100) 4 commits
 + receive-pack: allow using --strict mode for unpacking objects
 + unpack-objects: fix --strict handling
 + t5300: add test for "unpack-objects --strict"
 + unpack-objects: prevent writing of inconsistent objects

This would re-instate the "unpack-objects --strict" but we probably should
not do this before 1.5.5.

* py/submodule (Mon Mar 3 02:15:10 2008 +0800) 4 commits
 - git-submodule summary: documentation
 - git-submodule summary: limit summary size
 - git-submodule summary: show commit summary
 - git-submodule summary: code framework

----------------------------------------------------------------
[Actively Cooking]

* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits
 + Add a very basic test script for git mergetool
 + Teach git mergetool to use custom commands defined at config time
 + Changed an internal variable of mergetool to support custom
   commands
 + Tidy up git mergetool's backup file behaviour

The series looked Ok, and Ted seems to be busy, so I queued them myself.
Hopefully nobody would see breakages and we can have this in 1.5.5.

* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits
 + log/show/whatchanged: introduce format.pretty configuration
 + specify explicit "--pretty=medium" with `git log/show/whatchanged`
 + whatchanged documentation: share description of --pretty with
   others

Slated for 1.5.5.

* js/remote (Tue Mar 4 11:23:53 2008 +0000) 7 commits
 + remote: fix "update [group...]"
 + remote show: Clean up connection correctly if object fetch wasn't
   done
 + builtin-remote: prune remotes correctly that were added with --
   mirror
 + Make git-remote a builtin
 + Test "git remote show" and "git remote prune"
 + parseopt: add flag to stop on first non option
 + path-list: add functions to work with unsorted lists

Slated for 1.5.5.

* sp/fetch-optim (Mon Mar 3 22:27:40 2008 -0500) 11 commits
 + Teach git-fetch to exploit server side automatic tag following
 + Teach fetch-pack/upload-pack about --include-tag
 + git-pack-objects: Automatically pack annotated tags if object was
   packed
 + Teach git-fetch to grab a tag at the same time as a commit
 + Make git-fetch follow tags we already have objects for sooner
 + Teach upload-pack to log the received need lines to an fd
 + Free the path_lists used to find non-local tags in git-fetch
 + Allow builtin-fetch's find_non_local_tags to append onto a list
 + Ensure tail pointer gets setup correctly when we fetch HEAD only
 + Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
 + Remove unused variable in builtin-fetch find_non_local_tags

Slated for 1.5.5.

* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits
 + t3903-stash.sh: Add tests for new stash commands drop and pop
 + git-reflog.txt: Document new commands --updateref and --rewrite
 + t3903-stash.sh: Add missing '&&' to body of testcase
 + Merge commit '74359821' into js/reflog-delete
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

Slated for 1.5.5.

----------------------------------------------------------------
[On Hold]

* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits
 - Additional tests to capture worktree special cases
 - Documentation: update api-builtin and api-setup
 - Make setup_git_directory() auto-setup worktree if found
 - builtin-archive: mark unused prefix "unused_prefix"
 - Completely move out worktree setup from
   setup_git_directory_gently()
 - http-push: Avoid calling setup_git_directory() twice
 - Make setup_work_tree() return new prefix
 - Make get_git_dir() and 'git rev-parse --git-dir' absolute path
 - Make sure setup_git_directory is called before accessing
   repository
 - "git read-tree -m" and the like require worktree

Every time we touch work-tree stuff we seem to unstabilize; this round
seems more solid but I am still treading cautiously.  Not sure if we want
this for 1.5.5.

* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits
 + parse-options: new option type to treat an option-like parameter
   as an argument.
 + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --
   parseopt

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit
 + Optimize rename detection for a huge diff

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

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

* Re: What's cooking in git.git (topics)
  2008-03-06  5:49                     ` Junio C Hamano
@ 2008-03-06 17:01                       ` Johannes Schindelin
  2008-03-08  9:38                       ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Johannes Schindelin @ 2008-03-06 17:01 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Wed, 5 Mar 2008, Junio C Hamano wrote:

> [On Hold]
> 
> * nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits
>  - Additional tests to capture worktree special cases
>  - Documentation: update api-builtin and api-setup
>  - Make setup_git_directory() auto-setup worktree if found
>  - builtin-archive: mark unused prefix "unused_prefix"
>  - Completely move out worktree setup from
>    setup_git_directory_gently()
>  - http-push: Avoid calling setup_git_directory() twice
>  - Make setup_work_tree() return new prefix
>  - Make get_git_dir() and 'git rev-parse --git-dir' absolute path
>  - Make sure setup_git_directory is called before accessing
>    repository
>  - "git read-tree -m" and the like require worktree
> 
> Every time we touch work-tree stuff we seem to unstabilize; this round 
> seems more solid but I am still treading cautiously.  Not sure if we 
> want this for 1.5.5.

I think this needs a much closer look.  Being as large as the patch series 
is right now does not help at all.  And I am awfully short on time, 
_especially_ since I get sidetracked by things that are more fun, such as 
strbuf_vaddf().

Ciao,
Dscho

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

* What's cooking in git.git (topics)
  2008-03-06  5:49                     ` Junio C Hamano
  2008-03-06 17:01                       ` Johannes Schindelin
@ 2008-03-08  9:38                       ` Junio C Hamano
  1 sibling, 0 replies; 50+ messages in thread
From: Junio C Hamano @ 2008-03-08  9:38 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed
with '-' are only in 'pu' while commits prefixed with '+' are
in 'next'.

The topics list the commits in reverse chronological order.

----------------------------------------------------------------
[New Topics]

* lt/unpack-trees (Fri Mar 7 13:48:40 2008 -0800) 10 commits
 - unpack_trees(): minor memory leak fix in unused destination index
 - Make 'unpack_trees()' have a separate source and destination index
 - Make 'unpack_trees()' take the index to work on as an argument
 - Add 'const' where appropriate to index handling functions
 - Fix tree-walking compare_entry() in the presense of --prefix
 - Move 'unpack_trees()' over to 'traverse_trees()' interface
 - Make 'traverse_trees()' traverse conflicting DF entries in
   parallel
 - Add return value to 'traverse_tree()' callback
 - Make 'traverse_tree()' use linked structure rather than 'const
   char *base'
 - Add 'df_name_compare()' helper function

* dp/clean-fix (Fri Mar 7 21:56:56 2008 -0800) 7 commits
 + git-clean: add tests for relative path
 + git-clean: correct printing relative path
 + Make private quote_path() in wt-status.c available as
   quote_path_relative()
 + Revert part of d089eba (setup: sanitize absolute and funny paths
   in get_pathspec())
 + Revert part of 1abf095 (git-add: adjust to the get_pathspec()
   changes)
 + Revert part of 744dacd (builtin-mv: minimum fix to avoid losing
   files)
 + get_pathspec(): die when an out-of-tree path is given

----------------------------------------------------------------
[Graduated to 'master']

* ar/sgid-bsd (Wed Mar 5 00:15:39 2008 +0100) 1 commit
 + Do not use GUID on dir in git init --shared=all on FreeBSD

* cc/run-command (Wed Mar 5 08:35:16 2008 +0100) 1 commit
 + run-command: Redirect stderr to a pipe before redirecting stdout
   to stderr

* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits
 + Add a very basic test script for git mergetool
 + Teach git mergetool to use custom commands defined at config time
 + Changed an internal variable of mergetool to support custom
   commands
 + Tidy up git mergetool's backup file behaviour

The series looked Ok, and Ted seems to be busy, so I queued them myself.
Hopefully nobody would see breakages and we can have this in 1.5.5.
To give it a wider exposure early, I am merging it to 'master' now.

* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits
 + log/show/whatchanged: introduce format.pretty configuration
 + specify explicit "--pretty=medium" with `git log/show/whatchanged`
 + whatchanged documentation: share description of --pretty with
   others

* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits
 + t3903-stash.sh: Add tests for new stash commands drop and pop
 + git-reflog.txt: Document new commands --updateref and --rewrite
 + t3903-stash.sh: Add missing '&&' to body of testcase
 + Merge commit '74359821' into js/reflog-delete
 + git-stash: add new 'pop' subcommand
 + git-stash: add new 'drop' subcommand
 + git-reflog: add option --updateref to write the last reflog sha1
   into the ref
 + refs.c: make close_ref() and commit_ref() non-static
 + git-reflog: add option --rewrite to update reflog entries while
   expiring
 + reflog-delete: parse standard reflog options
 + Merge branch 'bc/reflog-fix' into js/reflog-delete
 + builtin-reflog.c: fix typo that accesses an unset variable
 + Teach "git reflog" a subcommand to delete single entries

----------------------------------------------------------------
[Actively Cooking]

* js/remote (Tue Mar 4 11:23:53 2008 +0000) 7 commits
 + remote: fix "update [group...]"
 + remote show: Clean up connection correctly if object fetch wasn't
   done
 + builtin-remote: prune remotes correctly that were added with --
   mirror
 + Make git-remote a builtin
 + Test "git remote show" and "git remote prune"
 + parseopt: add flag to stop on first non option
 + path-list: add functions to work with unsorted lists

Slated for 1.5.5, but probably needs more time to mature.

* sp/fetch-optim (Mon Mar 3 22:27:40 2008 -0500) 11 commits
 + Teach git-fetch to exploit server side automatic tag following
 + Teach fetch-pack/upload-pack about --include-tag
 + git-pack-objects: Automatically pack annotated tags if object was
   packed
 + Teach git-fetch to grab a tag at the same time as a commit
 + Make git-fetch follow tags we already have objects for sooner
 + Teach upload-pack to log the received need lines to an fd
 + Free the path_lists used to find non-local tags in git-fetch
 + Allow builtin-fetch's find_non_local_tags to append onto a list
 + Ensure tail pointer gets setup correctly when we fetch HEAD only
 + Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
 + Remove unused variable in builtin-fetch find_non_local_tags

Slated for 1.5.5, but probably needs more time to mature.

* ml/submodule-add-existing (Tue Mar 4 20:15:02 2008 -0500) 1 commit
 + git-submodule - Allow adding a submodule in-place

* jc/describe-always (Sun Mar 2 08:51:57 2008 -0800) 1 commit
 + describe --always: fall back to showing an abbreviated object name

* aw/maint-shortlog-blank-lines (Wed Mar 5 14:24:10 2008 +0000) 1 commit
 + shortlog: take the first populated line of the description

* jn/gitweb-pickaxe (Wed Mar 5 09:31:55 2008 +0100) 1 commit
 + gitweb: Fix and simplify pickaxe search

* cr/reset-parseopt (Tue Mar 4 23:11:34 2008 +0100) 1 commit
 + Make builtin-reset.c use parse_options.

* mr/compat-snprintf (Wed Mar 5 16:46:13 2008 +0100) 1 commit
 + Add compat/snprintf.c for systems that return bogus

The above 6 topics should be fine for 1.5.5 after cooking for a few more
days in 'next'.

* jc/am (Tue Mar 4 00:25:06 2008 -0800) 3 commits
 + am: --rebasing
 + am: remove support for -d .dotest
 + am: read from the right mailbox when started from a subdirectory

The first one is probably a good fix to what is already in 'master';
after the entire series, bash completion can tell between rebase and
am in progress.  Probably Ok for 1.5.5.

* jc/unpack-careful (Fri Mar 7 08:39:53 2008 +0100) 5 commits
 + t5300: add test for "index-pack --strict"
 + receive-pack: allow using --strict mode for unpacking objects
 + unpack-objects: fix --strict handling
 + t5300: add test for "unpack-objects --strict"
 + unpack-objects: prevent writing of inconsistent objects

This would re-instate the "unpack-objects --strict" but we probably should
not do this before 1.5.5.

* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits
 + parse-options: new option type to treat an option-like parameter
   as an argument.
 + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --
   parseopt

* py/submodule (Sat Mar 8 02:27:19 2008 +0800) 4 commits
 - git-submodule summary: documentation
 - git-submodule summary: limit summary size
 - git-submodule summary: show commit summary
 - git-submodule summary: code framework

----------------------------------------------------------------
[On Hold]

* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits
 - Additional tests to capture worktree special cases
 - Documentation: update api-builtin and api-setup
 - Make setup_git_directory() auto-setup worktree if found
 - builtin-archive: mark unused prefix "unused_prefix"
 - Completely move out worktree setup from
   setup_git_directory_gently()
 - http-push: Avoid calling setup_git_directory() twice
 - Make setup_work_tree() return new prefix
 - Make get_git_dir() and 'git rev-parse --git-dir' absolute path
 - Make sure setup_git_directory is called before accessing
   repository
 - "git read-tree -m" and the like require worktree

Every time we touch work-tree stuff we seem to unstabilize; this round
seems more solid but I am still treading cautiously.  Not sure if we want
this for 1.5.5.

* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits
 - tests: convert "cmp" and "cmp -s" to test_cmp
 - tests: test_cmp helper function

* jc/rename (Fri Mar 7 14:03:19 2008 -0800) 2 commits
 - diffcore-rename: make file_table available outside exact rename
   detection
 + Optimize rename detection for a huge diff

* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit
 - diff: make --dirstat binary-file safe

* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits
 - Teach GIT-VERSION-GEN about the .git file
 - Teach git-submodule.sh about the .git file
 - Teach resolve_gitlink_ref() about the .git file
 - Add platform-independent .git "symlink"

The idea and the implementation seem Ok, but this leaves
distinct feeling that it is a solution still waiting for a user
(e.g. "git submodule" enhancements to take advantage of this
facility to preserve the subrepository while switching between a
revision with a submodule and another before the submodule was
bound to the superproject).

* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit
 - Move all dashed-form commands to libexecdir

Scheduled for 1.6.0.  I am not sure if we should merge this to
'next' before 1.5.5.  Most active people will be on 'next' and
if we have this there, the resulting 1.5.5 release might end up
having issues that come from differences this one introduces.

* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits
 - Prepare execv_git_cmd() for removal of builtins from the
   filesystem
 - git-shell: accept "git foo" form

We do not plan to remove git-foo form completely from the filesystem at
this point, but git-shell may need to be updated.

* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits
 - sha1-lookup: make selection of 'middle' less aggressive
 - sha1-lookup: more memory efficient search in sorted list of SHA-1

Micro-optimization whose real world benefit is not proven.

* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits
 - WIP: rethink replay merge
 - Start using replay-tree merge in cherry-pick
 - revert/cherry-pick: start refactoring call to merge_recursive
 + expose a helper function peel_to_type().
 + merge-recursive: split low-level merge functions out.

This is meant to improve cherry-pick's behaviour by not using
merge-recursive, but unfortunately has stalled for some time now.

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

end of thread, other threads:[~2008-03-08  9:39 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-03 10:59 What's cooking in git.git (topics) Junio C Hamano
2008-02-03 21:43 ` Johannes Schindelin
2008-02-05  9:37 ` Junio C Hamano
2008-02-05 10:24   ` Jakub Narebski
2008-02-06  9:31     ` Junio C Hamano
2008-02-07  2:03   ` Junio C Hamano
2008-02-07  5:05     ` Jeff King
2008-02-07  9:43       ` Lars Hjemli
2008-02-07 10:32     ` Jakub Narebski
2008-02-10 10:48     ` Junio C Hamano
2008-02-10 16:29       ` Jakub Narebski
2008-02-10 16:48         ` Johannes Schindelin
2008-02-10 22:09         ` Junio C Hamano
2008-02-10 22:09         ` Junio C Hamano
2008-02-12  7:24       ` Junio C Hamano
2008-02-12  9:57         ` reflog-delete, was " Johannes Schindelin
2008-02-17  3:59         ` Junio C Hamano
2008-02-17 12:41           ` Jeff King
2008-02-17 13:52           ` Jakub Narebski
2008-02-17 18:59             ` Junio C Hamano
2008-02-17 22:01               ` Jakub Narebski
2008-02-18  0:37                 ` Junio C Hamano
2008-02-18  1:05                   ` Jakub Narebski
2008-02-17 15:48           ` Matthias Kestenholz
2008-02-17 18:10             ` Junio C Hamano
2008-02-17 18:22               ` Jeff King
2008-02-17 20:28           ` [Announce] 'next' rewound and rebased Junio C Hamano
2008-02-21  4:16           ` What's cooking in git.git (topics) Junio C Hamano
2008-02-21 10:40             ` Johannes Schindelin
2008-02-21 16:47               ` Junio C Hamano
2008-02-22 18:47               ` Brandon Casey
2008-02-22 18:56                 ` [PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring Brandon Casey
2008-02-22 21:08                   ` [PATCH] reflog-delete: parse standard reflog options Brandon Casey
     [not found]                 ` <1203706541-21719-1-git-send-email-casey@nrlssc.navy.mil>
2008-02-22 18:57                   ` [PATCH 2/4] refs.c: make close_ref() and commit_ref() non-static Brandon Casey
     [not found]                   ` <1203706541-21719-2-git-send-email-casey@nrlssc.navy.mil>
2008-02-22 19:04                     ` [PATCH 3/4] git-reflog: add option --updateref to write the last reflog sha1 into the ref Brandon Casey
     [not found]                     ` <1203706541-21719-3-git-send-email-casey@nrlssc.navy.mil>
2008-02-22 19:04                       ` [PATCH 4/4] git-stash: add new 'drop' subcommand Brandon Casey
2008-02-22 22:52                         ` [PATCH] git-stash: add new 'pop' subcommand Brandon Casey
2008-02-22 22:26                 ` What's cooking in git.git (topics) Junio C Hamano
2008-02-23  0:19                   ` Brandon Casey
2008-02-23  0:29                     ` Junio C Hamano
2008-02-23  0:51                     ` Junio C Hamano
2008-02-23  2:43                       ` Brandon Casey
2008-02-25  8:40             ` Junio C Hamano
2008-02-28  0:45               ` Junio C Hamano
2008-03-01 20:15                 ` Junio C Hamano
2008-03-02 14:02                   ` Shawn O. Pearce
2008-03-03  2:06                   ` Junio C Hamano
2008-03-06  5:49                     ` Junio C Hamano
2008-03-06 17:01                       ` Johannes Schindelin
2008-03-08  9:38                       ` Junio C Hamano

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

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).