Browse Source

What's cooking in git.git (Jul 2008, issue #03; Mon, 07)

todo
Junio C Hamano 17 years ago
parent
commit
4560aa9fd4
  1. 266
      whatscooking.txt

266
whatscooking.txt

@ -1,4 +1,4 @@
What's cooking in git.git (Jul 2008, issue #02; Sun, 06) What's cooking in git.git (Jul 2008, issue #03; Mon, 07)
-------------------------------------------------------- --------------------------------------------------------


Here are the topics that have been cooking. Commits prefixed Here are the topics that have been cooking. Commits prefixed
@ -45,26 +45,49 @@ n
---------------------------------------------------------------- ----------------------------------------------------------------
[New Topics] [New Topics]


* js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit * jc/rebase-orig-head (Mon Jul 7 00:16:38 2008 -0700) 1 commit
- [PARKED improvement suggested not rolled in] git daemon: avoid + Teach "am" and "rebase" to mark the original position with
calling syslog() from a signal handler ORIG_HEAD


This will eventually appear in 'maint'; currently parked on 'pu', thoug= * sb/sequencer (Tue Jul 1 04:38:34 2008 +0200) 4 commits
h. . Migrate git-am to use git-sequencer
. Add git-sequencer test suite (t3350)
. Add git-sequencer prototype documentation
. Add git-sequencer shell prototype


* jc/report-tracking (Sun Jul 6 02:54:56 2008 -0700) 5 commits * js/pick-root (Fri Jul 4 16:19:52 2008 +0100) 1 commit
- branch -r -v: do not spit out garbage + Allow cherry-picking root commits
+ stat_tracking_info(): clear object flags used during counting
+ git-branch -v: show the remote tracking statistics
+ git-status: show the remote tracking statistics
+ Refactor "tracking statistics" code used by "git checkout"


Makes the "your branch is ahead of the tracked one by N commits" logic = * ab/bundle (Sat Jul 5 17:26:40 2008 -0400) 1 commit
and + Teach git-bundle to read revision arguments from stdin like git-
messages available to other commands; status and branch are updated. rev-list.

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

* js/apply-root (Sun Jul 6 18:36:01 2008 -0700) 3 commits
+ git-apply --directory: make --root more similar to GNU diff
+ apply --root: thinkofix.
+ Teach "git apply" to prepend a prefix with "--root=3D<root>"

* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
+ Make default expiration period of reflog used for stash infinite
+ Per-ref reflog expiry configuration

As 1.6.0 will be a good time to make backward incompatible changes, the
tip commit makes the default expiry period of stash 'never', unless you
configure them to expire explicitly using gc.refs/stash.* variables.
Needs consensus, but I am guessing that enough people would want stash
that does not expire.

* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit
+ Allow per-command pager config

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


* sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit * sg/stash-k-i (Fri Jun 27 16:37:15 2008 +0200) 1 commit
- stash: introduce 'stash save --keep-index' option + stash: introduce 'stash save --keep-index' option


One weakness of our "partial commit" workflow support used to be that t= One weakness of our "partial commit" workflow support used to be that t=
he he
@ -74,11 +97,14 @@ state cannot be tested as a whole in the working tree. This allows you=
to to
temporarily stash the remaining changes in the working tree so that the temporarily stash the remaining changes in the working tree so that the
index state before running "stash save --keep-index" can be seen in the index state before running "stash save --keep-index" can be seen in the
working tree to be tested and then committed. A recommended workflow t= working tree to be tested and then committed.
o
use after that commit is made needs to be documented (and support needs= * am/stash-branch (Mon Jul 7 02:50:10 2008 +0530) 2 commits
to + Add a test for "git stash branch"
be added if necessary). + Implement "git stash branch <newbranch> <stash>"

Creates a new branch out of the stashed state, after returning from the
interrupt that forced you to create the stash in the first place.


* tr/add-i-e (Thu Jul 3 00:00:00 2008 +0200) 3 commits * tr/add-i-e (Thu Jul 3 00:00:00 2008 +0200) 3 commits
+ git-add--interactive: manual hunk editing mode + git-add--interactive: manual hunk editing mode
@ -87,60 +113,75 @@ be added if necessary).


Adds 'e/dit' action to interactive add command. Adds 'e/dit' action to interactive add command.


* am/stash-branch (Thu Jul 3 11:46:05 2008 +0530) 1 commit * jc/report-tracking (Sun Jul 6 02:54:56 2008 -0700) 5 commits
+ Implement "git stash branch <newbranch> <stash>" + branch -r -v: do not spit out garbage
+ stat_tracking_info(): clear object flags used during counting
+ git-branch -v: show the remote tracking statistics
+ git-status: show the remote tracking statistics
+ Refactor "tracking statistics" code used by "git checkout"


Creates a new branch out of the stashed state, after returning from the Makes the "your branch is ahead of the tracked one by N commits" logic =
interrupt that forced you to create the stash in the first place. and
messages available to other commands; status and branch are updated.


* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit * jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
- Ignore graft during object transfer [broken wrt shallow clones] + Make "subtree" part more orthogonal to the rest of merge-
recursive.
+ Teach git-pull to pass -X<option> to git-merge
+ Teach git-merge to pass -X<option> to the backend strategy module
+ git-merge-recursive-{ours,theirs}
+ git-merge-file --ours, --theirs


Cloning or fetching from a repository from grafts did not send objects Punting a merge by discarding your own work in conflicting parts but st=
that are hidden by grafts, but the commits in the resulting repository = ill
do salvaging the parts that are cleanly automerged. It is likely that thi=
need these to pass fsck. This fixes object transfer to ignore grafts. s
will result in nonsense mishmash, but somehow often people want this, s=
o
here they are. The interface to the backends is updated so that you ca=
n
say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now.


Another fix is needed to git-prune so that it ignores grafts but treats The -X<option> part may change, Dscho mentions that a single-letter -X
commits that are mentioned in grafts as reachable. that take stuck option is against syntax rules, and I think he's right.


* jk/pager-config (Thu Jul 3 07:46:57 2008 -0400) 1 commit This is more "because we can", not "because we need to".
- Allow per-command pager config
* mv/merge-in-c (Mon Jul 7 19:24:20 2008 +0200) 15 commits
- Build in merge
+ Fix t7601-merge-pull-config.sh on AIX
+ git-commit-tree: make it usable from other builtins
+ Add new test case to ensure git-merge prepends the custom merge
message
+ Add new test case to ensure git-merge reduces octopus parents when
possible
+ Introduce reduce_heads()
+ Introduce get_merge_bases_many()
+ Add new test to ensure git-merge handles more than 25 refs.
+ Introduce get_octopus_merge_bases() in commit.c
+ git-fmt-merge-msg: make it usable from other builtins
+ Move read_cache_unmerged() to read-cache.c
+ Add new test to ensure git-merge handles pull.twohead and
pull.octopus
+ Move parse-options's skip_prefix() to git-compat-util.h
+ Move commit_list_count() to commit.c
+ Move split_cmdline() to alias.c


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


* js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit * js/import-zip (Mon Jun 30 19:50:44 2008 +0100) 1 commit
+ Add another fast-import example, this time for .zip files + Add another fast-import example, this time for .zip files


* js/apply-root (Wed Jul 2 15:28:22 2008 -0700) 2 commits
+ apply --root: thinkofix.
+ Teach "git apply" to prepend a prefix with "--root=3D<root>"

* db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit * db/no-git-config (Mon Jun 30 03:37:47 2008 -0400) 1 commit
+ Only use GIT_CONFIG in "git config", not other programs + Only use GIT_CONFIG in "git config", not other programs


* jc/reflog-expire (Sat Jun 28 22:24:49 2008 -0700) 2 commits
+ Make default expiration period of reflog used for stash infinite
+ Per-ref reflog expiry configuration

As 1.6.0 will be a good time to make backward incompatible changes, the
tip commit makes the default expiry period of stash 'never', unless you
configure them to expire explicitly using gc.refs/stash.* variables.
Needs consensus, but I am guessing that enough people would want stash
that does not expire.

* dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits * dr/ceiling (Mon May 19 23:49:34 2008 -0700) 4 commits
+ Eliminate an unnecessary chdir("..") + Eliminate an unnecessary chdir("..")
+ Add support for GIT_CEILING_DIRECTORIES + Add support for GIT_CEILING_DIRECTORIES
+ Fold test-absolute-path into test-path-utils + Fold test-absolute-path into test-path-utils
+ Implement normalize_absolute_path + Implement normalize_absolute_path


This still feels "because we can", not "because we need to", but it cam=
e
from somebody who had the need to, and I do not think it hurts people
without the environment variable set.

* jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits * jc/rerere (Sun Jun 22 02:04:31 2008 -0700) 5 commits
+ rerere.autoupdate + rerere.autoupdate
+ t4200: fix rerere test + t4200: fix rerere test
@ -151,85 +192,10 @@ without the environment variable set.
A new configuration will allow paths that have been resolved cleanly by A new configuration will allow paths that have been resolved cleanly by
rerere to be updated in the index automatically. rerere to be updated in the index automatically.


To me, this is "because we can", but was something requested by Ingo, s= * js/maint-daemon-syslog (Thu Jul 3 16:27:24 2008 +0100) 1 commit
o + git daemon: avoid calling syslog() from a signal handler
presumably some people may feel it useful in their workflow.

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

* mv/merge-in-c (Tue Jul 1 04:37:50 2008 +0200) 15 commits
- [REJECT -- over-abuse of path-list] Build in merge
+ Fix t7601-merge-pull-config.sh on AIX
+ git-commit-tree: make it usable from other builtins
+ Add new test case to ensure git-merge prepends the custom merge
message
+ Add new test case to ensure git-merge reduces octopus parents when
possible
+ Introduce reduce_heads()
+ Introduce get_merge_bases_many()
+ Add new test to ensure git-merge handles more than 25 refs.
+ Introduce get_octopus_merge_bases() in commit.c
+ git-fmt-merge-msg: make it usable from other builtins
+ Move read_cache_unmerged() to read-cache.c
+ Add new test to ensure git-merge handles pull.twohead and
pull.octopus
+ Move parse-options's skip_prefix() to git-compat-util.h
+ Move commit_list_count() to commit.c
+ Move split_cmdline() to alias.c

The last one is still not quite there, I am afraid.

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


* j6t/mingw (Sat Nov 17 20:48:14 2007 +0100) 38 commits Meant for 'maint' as well.
+ compat/pread.c: Add a forward declaration to fix a warning
+ Windows: Fix ntohl() related warnings about printf formatting
+ Windows: TMP and TEMP environment variables specify a temporary
directory.
+ Windows: Make 'git help -a' work.
+ Windows: Work around an oddity when a pipe with no reader is
written to.
+ Windows: Make the pager work.
+ When installing, be prepared that template_dir may be relative.
+ Windows: Use a relative default template_dir and ETC_GITCONFIG
+ Windows: Compute the fallback for exec_path from the program
invocation.
+ Turn builtin_exec_path into a function.
+ Windows: Use a customized struct stat that also has the st_blocks
member.
+ Windows: Add a custom implementation for utime().
+ Windows: Add a new lstat and fstat implementation based on Win32
API.
+ Windows: Implement a custom spawnve().
+ Windows: Implement wrappers for gethostbyname(), socket(), and
connect().
+ Windows: Work around incompatible sort and find.
+ Windows: Implement asynchronous functions as threads.
+ Windows: Disambiguate DOS style paths from SSH URLs.
+ Windows: A rudimentary poll() emulation.
+ Windows: Implement start_command().
+ Windows: A pipe() replacement whose ends are not inherited to
children.
+ Windows: Wrap execve so that shell scripts can be invoked.
+ Windows: Implement setitimer() and sigaction().
+ Windows: Fix PRIuMAX definition.
+ Windows: Implement gettimeofday().
+ Make my_mktime() public and rename it to tm_to_time_t()
+ Windows: Work around misbehaved rename().
+ Windows: always chmod(, 0666) before unlink().
+ Windows: A minimal implemention of getpwuid().
+ Windows: Implement a wrapper of the open() function.
+ Windows: Strip ".exe" from the program name.
+ Windows: Handle absolute paths in
safe_create_leading_directories().
+ Windows: Treat Windows style path names.
+ setup.c: Prepare for Windows directory separators.
+ Windows: Use the Windows style PATH separator ';'.
+ Add target architecture MinGW.
+ Compile some programs only conditionally.
+ Add compat/regex.[ch] and compat/fnmatch.[ch].


---------------------------------------------------------------- ----------------------------------------------------------------
[On Hold] [On Hold]
@ -264,6 +230,17 @@ hit due to tcl/tk's limitation, so I am holding this back for now.
---------------------------------------------------------------- ----------------------------------------------------------------
[Stalled/Needs more work] [Stalled/Needs more work]


* jc/grafts (Wed Jul 2 17:14:12 2008 -0700) 1 commit
- [BROKEN wrt shallow clones] Ignore graft during object transfer

Cloning or fetching from a repository from grafts did not send objects
that are hidden by grafts, but the commits in the resulting repository =
do
need these to pass fsck. This fixes object transfer to ignore grafts.

Another fix is needed to git-prune so that it ignores grafts but treats
commits that are mentioned in grafts as reachable.

* ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits * ph/parseopt-step-blame (Tue Jun 24 11:12:12 2008 +0200) 7 commits
- Migrate git-blame to parse-option partially. - Migrate git-blame to parse-option partially.
+ parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option. + parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
@ -304,26 +281,3 @@ commit, which we should be able to separate out into an independent top=
ic ic
from the rest. from the rest.


* jc/merge-theirs (Mon Jun 30 22:18:57 2008 -0700) 5 commits
+ Make "subtree" part more orthogonal to the rest of merge-
recursive.
+ Teach git-pull to pass -X<option> to git-merge
+ Teach git-merge to pass -X<option> to the backend strategy module
+ git-merge-recursive-{ours,theirs}
+ git-merge-file --ours, --theirs

Punting a merge by discarding your own work in conflicting parts but st=
ill
salvaging the parts that are cleanly automerged. It is likely that thi=
s
will result in nonsense mishmash, but somehow often people want this, s=
o
here they are. The interface to the backends is updated so that you ca=
n
say "git merge -Xours -Xsubtree=3Dfoo/bar/baz -s recursive other" now.

The -X<option> part may change, Dscho mentions that a single-letter -X
that take stuck option is against syntax rules, and I think he's right.

This is more "because we can", not "because we need to".


Loading…
Cancel
Save