All of lore.kernel.org
 help / color / mirror / Atom feed
* What's cooking in git.git (topics)
@ 2007-02-20  7:42 Junio C Hamano
  2007-02-20  8:20 ` Eric Wong
                   ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-02-20  7:42 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.

* jc/apply-config (Tue Feb 20 03:45:49 2007 +0100) 5 commits
 - apply: fix memory leak in prefix_one()
 + git-apply: require -p<n> when working in a subdirectory.
 + git-apply: do not lose cwd when run from a subdirectory.
 + Teach 'git apply' to look at $HOME/.gitconfig even outside of a
   repository
 + Teach 'git apply' to look at $GIT_DIR/config

* lt/crlf (Sat Feb 17 12:37:25 2007 -0800) 4 commits
 + Teach core.autocrlf to 'git apply'
 + t0020: add test for auto-crlf
 + Make AutoCRLF ternary variable.
 + Lazy man's auto-CRLF

The above two series are to help MinGW and people who suffer
from CRLF in general.  I think they are good enough for general
consumption now.  Will perhaps push them out sometime this week.

* js/fetch-progress (Tue Feb 20 03:01:44 2007 +0100) 1 commit
 - fetch & clone: do not output progress when not on a tty
* js/name-rev-fix (Tue Feb 20 01:08:48 2007 +0100) 1 commit
 + name-rev: avoid "^0" when unneeded
* js/grep-pager (Mon Feb 19 15:56:04 2007 +0100) 1 commit
 - git grep: use pager
* js/no-limit-boundary (Mon Feb 19 03:14:59 2007 +0100) 1 commit
 + rev-list --max-age, --max-count: support --boundary
* fk/autoconf (Sun Feb 18 09:44:42 2007 +0100) 1 commit
 + New autoconf test for iconv
* js/etc-config (Wed Feb 14 12:48:14 2007 +0100) 1 commit
 - config: read system-wide defaults from /etc/gitconfig
* mw/64bit (Sat Feb 17 10:13:10 2007 +0100) 1 commit
 - Support for large files on 32bit systems.
* sb/merge (Thu Feb 15 16:39:53 2007 +0100) 1 commit
 - t/t5515-fetch-merge-logic.sh: Added tests for the merge logic in
   git-fetch

These should be Ok.  All should cook in 'next' and graduate to
'master' by end of next week at the latest.

* jc/fetch (Tue Feb 13 01:21:41 2007 +0000) 8 commits
 - Use stdin reflist passing in git-fetch.sh
 - Use stdin reflist passing in parse-remote
 - Allow fetch--tool to read from stdin
 - git-fetch: rewrite expand_ref_wildcard in C
 - git-fetch: rewrite another shell loop in C
 - git-fetch: move more code into C.
 - git-fetch--tool: start rewriting parts of git-fetch in C.
 - git-fetch: split fetch_main into fetch_dumb and fetch_native

Stalled.  If somebody wants to take this over I'll push this out
to 'next'.

* js/diff-2 (Sun Feb 18 12:44:43 2007 +0100) 1 commit
 - Add `git diff2`, a GNU diff workalike

Undecided.  Perhaps will merge to 'next' to see if somebody else
comes up with a better naming idea.

* jc/merge-subtree (Thu Feb 15 16:32:45 2007 -0800) 1 commit
 - A new merge stragety 'subtree'.

Seems to work very well, but I do not see great urgency to merge
this to 'next' yet.

* jc/diff (Mon Dec 25 01:08:50 2006 -0800) 2 commits
 - test-para: combined diff between HEAD, index and working tree.
 - para-walk: walk n trees, index and working tree in parallel

Stalled.

* js/objhash (Sat Feb 17 18:38:50 2007 +0100) 2 commits
 . Add `struct object_hash` (fixup)
 . Add `struct object_hash`

Stalled.

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

* Re: What's cooking in git.git (topics)
  2007-02-20  7:42 What's cooking in git.git (topics) Junio C Hamano
@ 2007-02-20  8:20 ` Eric Wong
  2007-02-20  8:35   ` Junio C Hamano
  2007-02-20  8:30 ` Alexander Litvinov
  2007-02-23  8:51 ` Junio C Hamano
  2 siblings, 1 reply; 28+ messages in thread
From: Eric Wong @ 2007-02-20  8:20 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Johannes Schindelin

Junio C Hamano <junkio@cox.net> wrote:
> * js/diff-2 (Sun Feb 18 12:44:43 2007 +0100) 1 commit
>  - Add `git diff2`, a GNU diff workalike
> 
> Undecided.  Perhaps will merge to 'next' to see if somebody else
> comes up with a better naming idea.

With this, we can get rid of any test dependency on an external diff
and have a consistent replacement for cmp[1], as well.

`git gdiff`?  `git xdiff`?  `gdiff` would be easier on the fingers
(assuming querty), but `xdiff` is probably a more accurate name.

[1] - <200702172225.12758.johannes.sixt@telecom.at>
-- 
Eric Wong

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

* Re: What's cooking in git.git (topics)
  2007-02-20  7:42 What's cooking in git.git (topics) Junio C Hamano
  2007-02-20  8:20 ` Eric Wong
@ 2007-02-20  8:30 ` Alexander Litvinov
  2007-02-23  8:51 ` Junio C Hamano
  2 siblings, 0 replies; 28+ messages in thread
From: Alexander Litvinov @ 2007-02-20  8:30 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

В сообщении от Tuesday 20 February 2007 13:42 Junio C Hamano написал:
>
> * lt/crlf (Sat Feb 17 12:37:25 2007 -0800) 4 commits
>  + Teach core.autocrlf to 'git apply'
>  + t0020: add test for auto-crlf
>  + Make AutoCRLF ternary variable.
>  + Lazy man's auto-CRLF
>
> The above two series are to help MinGW and people who suffer
> from CRLF in general.  I think they are good enough for general
> consumption now.  Will perhaps push them out sometime this week.

I use the auto crlf convertion as far as Linus made it. Under cygwin it works 
and I have not seen any problems except converting repo from \r\n to \n 
style. Convertion produce a lot of confilcts then merge branches.

All other sides of git I am using works well.

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

* Re: What's cooking in git.git (topics)
  2007-02-20  8:20 ` Eric Wong
@ 2007-02-20  8:35   ` Junio C Hamano
  0 siblings, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-02-20  8:35 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Johannes Schindelin

Eric Wong <normalperson@yhbt.net> writes:

> Junio C Hamano <junkio@cox.net> wrote:
>> * js/diff-2 (Sun Feb 18 12:44:43 2007 +0100) 1 commit
>>  - Add `git diff2`, a GNU diff workalike
>> 
>> Undecided.  Perhaps will merge to 'next' to see if somebody else
>> comes up with a better naming idea.
>
> With this, we can get rid of any test dependency on an external diff
> and have a consistent replacement for cmp[1], as well.
>
> `git gdiff`?  `git xdiff`?  `gdiff` would be easier on the fingers
> (assuming querty), but `xdiff` is probably a more accurate name.

Well, my trouble was that it is anything other than "diff".

An obvious alternative is the same command name (at least
superficially) with an option, such as "diff --fs".  I am not
sure if that is any better than "git {something}diff", though.

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

* What's cooking in git.git (topics)
  2007-02-20  7:42 What's cooking in git.git (topics) Junio C Hamano
  2007-02-20  8:20 ` Eric Wong
  2007-02-20  8:30 ` Alexander Litvinov
@ 2007-02-23  8:51 ` Junio C Hamano
  2007-02-23 14:48   ` Johannes Schindelin
  2007-03-04 10:32   ` Junio C Hamano
  2 siblings, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-02-23  8:51 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.

* js/bundle (Fri Feb 23 03:17:51 2007 +0100) 5 commits
 + git-bundle: record commit summary in the prerequisite data
 + git-bundle: fix 'create --all'
 + git-bundle: avoid fork() in verify_bundle()
 + git-bundle: assorted fixes
 + Add git-bundle: move objects and references by archive

Johannes muttered something about leak in "create --all" but I
do not think there is any --- they are pointing at memory
location in refs.c:cached_refs.{loose,packed}.  I haven't
checked if the prerequisite logic is done correctly yet -- I
trust that the list can verify it for me before I get around to
it myself.

* js/no-limit-boundary (Mon Feb 19 03:14:59 2007 +0100) 1 commit
 + rev-list --max-age, --max-count: support --boundary

This should graduate to 'master' soon.

* js/etc-config (Thu Feb 15 11:43:56 2007 +0100) 2 commits
 + Make tests independent of global config files
 + config: read system-wide defaults from /etc/gitconfig

I think this is Ok, I do not have a real need for this myself
but it was done in response to a specific user request, so I can
be easily persuaded to make this graduate to 'master' by a
gentle reminder with a success report.

* js/commit-format (Fri Feb 23 01:35:03 2007 +0100) 1 commit
 - pretty-formats: add 'format:<string>'

Cute, but probably can be cleaned up.

* js/diff-ni (Thu Feb 22 21:50:10 2007 +0100) 1 commit
 - Teach git-diff-files the new option `--no-index`

With a minor code restructure I think it got much nicer.

* js/apply (Thu Feb 22 20:11:21 2007 +0100) 1 commit
 + apply: make --verbose a little more useful

Nice touch.  I think this is ready and I'll merge after I have a
chance or two to exercise it myself in real-life.

* jc/status (Thu Feb 22 02:07:56 2007 -0800) 5 commits
 - git-status: use in-core --refresh in a read-only repository.
 - git-runstatus --refresh
 + run_diff_{files,index}(): update calling convention.
 + update-index: do not die too early in a read-only repository.
 + git-status: do not be totally useless in a read-only repository.

The first (meaning bottom in the list) two are true improvement
for obscure corner case, the third is a code cleanup to make
future enhancements (and the later ones in the series) easier.
I have not decided if it is worth to have the remaining two, so
they are left in 'pu'.

* js/fetch-progress (Tue Feb 20 03:01:44 2007 +0100) 1 commit
 + fetch & clone: do not output progress when not on a tty

I'll see it in action from my cron job.

* jc/fetch (Tue Feb 13 01:21:41 2007 +0000) 8 commits
 - Use stdin reflist passing in git-fetch.sh
 - Use stdin reflist passing in parse-remote
 - Allow fetch--tool to read from stdin
 - git-fetch: rewrite expand_ref_wildcard in C
 - git-fetch: rewrite another shell loop in C
 - git-fetch: move more code into C.
 - git-fetch--tool: start rewriting parts of git-fetch in C.
 - git-fetch: split fetch_main into fetch_dumb and fetch_native

Works, does not break anything, very ugly.  Probably needs
reworking if we were to have this in 'next'.

* sb/merge (Thu Feb 15 16:39:53 2007 +0100) 1 commit
 - t/t5515-fetch-merge-logic.sh: Added tests for the merge logic in
   git-fetch

* jc/merge-subtree (Thu Feb 15 16:32:45 2007 -0800) 1 commit
 - A new merge stragety 'subtree'.

I agree with Shawn that its tree-shifting logic should be based
on something similar to tree-diff rename detection before moving
it into 'next'.

* jc/diff (Mon Dec 25 01:08:50 2006 -0800) 2 commits
 - test-para: combined diff between HEAD, index and working tree.
 - para-walk: walk n trees, index and working tree in parallel

Stalled.

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

* Re: What's cooking in git.git (topics)
  2007-02-23  8:51 ` Junio C Hamano
@ 2007-02-23 14:48   ` Johannes Schindelin
  2007-02-23 18:12     ` Junio C Hamano
  2007-03-04 10:32   ` Junio C Hamano
  1 sibling, 1 reply; 28+ messages in thread
From: Johannes Schindelin @ 2007-02-23 14:48 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Fri, 23 Feb 2007, Junio C Hamano wrote:

> * js/fetch-progress (Tue Feb 20 03:01:44 2007 +0100) 1 commit
>  + fetch & clone: do not output progress when not on a tty
> 
> I'll see it in action from my cron job.

That's how I tried to test it. It does not work. The problem is that the 
remote git-upload-pack is unlikely to understand the option 
"--no-progress".

So maybe we have to make this a new pack protocol option?

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2007-02-23 14:48   ` Johannes Schindelin
@ 2007-02-23 18:12     ` Junio C Hamano
  0 siblings, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-02-23 18:12 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

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

> On Fri, 23 Feb 2007, Junio C Hamano wrote:
>
>> * js/fetch-progress (Tue Feb 20 03:01:44 2007 +0100) 1 commit
>>  + fetch & clone: do not output progress when not on a tty
>> 
>> I'll see it in action from my cron job.
>
> That's how I tried to test it. It does not work. The problem is that the 
> remote git-upload-pack is unlikely to understand the option 
> "--no-progress".
>
> So maybe we have to make this a new pack protocol option?

Yes.

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

* What's cooking in git.git (topics)
  2007-02-23  8:51 ` Junio C Hamano
  2007-02-23 14:48   ` Johannes Schindelin
@ 2007-03-04 10:32   ` Junio C Hamano
  2007-03-04 12:32     ` Johannes Schindelin
                       ` (2 more replies)
  1 sibling, 3 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-04 10:32 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.

* js/attach (Sun Mar 4 00:12:06 2007 +0100) 1 commit
 - format-patch: add --inline option and make --attach a true
   attachment

With this, --attach makes a mixed/multipart message with
"content-disposition: attachment"; the previous behaviour to
emit "content-disposition: inline" is available with the new
option --inline.  It is an improvement in the sense that it
makes the option name and behaviour match each other, but it
changes the behaviour, so some people may not like it.  I think
I'll merge to 'next' anyway, if only to see if anybody screams.

* js/symlink (Sat Mar 3 20:38:00 2007 +0100) 3 commits
 + Tell multi-parent diff about core.symlinks.
 + Handle core.symlinks=false case in merge-recursive.
 + Add core.symlinks to mark filesystems that do not support symbolic
   links.

This is to help the MinGW port; I think this topic is ready to
graduate to 'master'.

* js/config-rename (Fri Mar 2 21:53:33 2007 +0100) 1 commit
 + git-config: document --rename-section, provide --remove-section

This would help clean-up after removing branches and remotes.

* js/gnucl (Fri Mar 2 15:29:08 2007 +0100) 2 commits
 - --pretty=gnucl: avoid line wrapping before the comma
 - Add --pretty=gnucl

This is to output logs in the GNU ChangeLog format.

* jc/pathattr (Thu Mar 1 01:20:21 2007 -0800) 5 commits
 - pathattr: allow piping to external program.
 - pathattr: read from git_config().
 - git-show: use pathattr to run "display"
 - pathattr: path based configuration of various attributes.
 + convert: add scaffolding for path based selection of conversion
   routines.

This is a continuation of the CRLF munging topic that is already
in the 'master' branch, but I am expecting to have to redo
almost all of them.  This is left in 'pu' just as a reference.

* js/revert-cherry (Thu Mar 1 05:26:30 2007 +0100) 1 commit
 + Make git-revert & git-cherry-pick a builtin

Will cook for some time.

* jc/fetch (Wed Feb 28 17:02:18 2007 -0800) 14 commits
 + builtin-fetch--tool: fix reflog notes.
 + git-fetch: retire update-local-ref which is not used anymore.
 + builtin-fetch--tool: make sure not to overstep ls-remote-result
   buffer.
 + fetch--tool: fix uninitialized buffer when reading from stdin
 + builtin-fetch--tool: adjust to updated sha1_object_info().
 + git-fetch--tool takes flags before the subcommand.
 + Use stdin reflist passing in git-fetch.sh
 + Use stdin reflist passing in parse-remote
 + Allow fetch--tool to read from stdin
 + git-fetch: rewrite expand_ref_wildcard in C
 + git-fetch: rewrite another shell loop in C
 + git-fetch: move more code into C.
 + git-fetch--tool: start rewriting parts of git-fetch in C.
 + git-fetch: split fetch_main into fetch_dumb and fetch_native

Beginning of built-in git-fetch, primarily to speed up fetching
between repositories with insane number of refs.

* jb/per-user-exclude (Tue Feb 27 22:31:10 2007 -0500) 1 commit
 - add: Support specifying an excludes file with a configuration
   variable

I was hoping that the attribute system would make this
unnecessary (you assign 'ignored' attribute to paths, instead of
spelling them out in the additional .gitignore), but that is a
bit in the future.

* js/diff-ni (Sun Feb 25 23:36:53 2007 +0100) 4 commits
 + Get rid of the dependency to GNU diff in the tests
 + diff --no-index: support /dev/null as filename
 + diff-ni: fix the diff with standard input
 + diff: support reading a file from stdin via "-"

I've fixed up this series since it was posted, and I think it is
in a testable shape now, so it is in 'next'.

* js/fetch-progress (Sun Feb 25 13:13:17 2007 -0800) 3 commits
 . git-fetch: add --quiet
 + Fixup no-progress for fetch & clone
 + fetch & clone: do not output progress when not on a tty

The early parts that have been in 'next' should be ready to go
to 'master' now.  The last one I am not sure.

* jc/status (Thu Feb 22 02:07:56 2007 -0800) 2 commits
 - git-status: use in-core --refresh in a read-only repository.
 - git-runstatus --refresh

These two were done for the specific purpose of helping qgit,
but I haven't heard about them, so they are on hold.  If they
are not needed by qgit nor people who like to run git-status in
a read-only repository, I do not see any reason to keep them.

* jc/merge-subtree (Thu Feb 15 16:32:45 2007 -0800) 1 commit
 - A new merge stragety 'subtree'.

This is still my useful toy at this stage.  I agree with Shawn
that subtree identification needs to be improved.

* jc/diff (Mon Dec 25 01:08:50 2006 -0800) 2 commits
 - test-para: combined diff between HEAD, index and working tree.
 - para-walk: walk n trees, index and working tree in parallel

This is just a reference, waiting for a day somebody has enough
energy to rewrite diff family with a unified tree walker.

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

* Re: What's cooking in git.git (topics)
  2007-03-04 10:32   ` Junio C Hamano
@ 2007-03-04 12:32     ` Johannes Schindelin
  2007-03-04 22:26       ` Linus Torvalds
  2007-03-04 12:40     ` Marco Costalba
  2007-03-13  8:49     ` Junio C Hamano
  2 siblings, 1 reply; 28+ messages in thread
From: Johannes Schindelin @ 2007-03-04 12:32 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Sun, 4 Mar 2007, Junio C Hamano wrote:

> * js/attach (Sun Mar 4 00:12:06 2007 +0100) 1 commit
>
> [...]
>
> * js/symlink (Sat Mar 3 20:38:00 2007 +0100) 3 commits

The prefix system is showing its limitation... :-)

> * js/gnucl (Fri Mar 2 15:29:08 2007 +0100) 2 commits
>  - --pretty=gnucl: avoid line wrapping before the comma
>  - Add --pretty=gnucl
> 
> This is to output logs in the GNU ChangeLog format.

FWIW I am opposed to include that. After letting it sink in, Linus' 
remarks convinced me that this format is not as useful as our other log 
formats, and for those people who really want it, there is git2cl.

> * js/revert-cherry (Thu Mar 1 05:26:30 2007 +0100) 1 commit
>  + Make git-revert & git-cherry-pick a builtin
> 
> Will cook for some time.

Yes. I worked with them a bit, but nowhere enough to say that they are 
not introducing regressions.

> * js/diff-ni (Sun Feb 25 23:36:53 2007 +0100) 4 commits
>  + Get rid of the dependency to GNU diff in the tests
>  + diff --no-index: support /dev/null as filename
>  + diff-ni: fix the diff with standard input
>  + diff: support reading a file from stdin via "-"
> 
> I've fixed up this series since it was posted, and I think it is
> in a testable shape now, so it is in 'next'.

Thank you.

> * js/fetch-progress (Sun Feb 25 13:13:17 2007 -0800) 3 commits
>  . git-fetch: add --quiet
>  + Fixup no-progress for fetch & clone
>  + fetch & clone: do not output progress when not on a tty
> 
> The early parts that have been in 'next' should be ready to go to 
> 'master' now.  The last one I am not sure.

BTW I just added this to my fetches in crontab: ' | sed -e "s/^.*\r//g"' 
This is the workaround Nico proposed, only a little bit more obvious (and 
removable).

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2007-03-04 10:32   ` Junio C Hamano
  2007-03-04 12:32     ` Johannes Schindelin
@ 2007-03-04 12:40     ` Marco Costalba
  2007-03-13  8:49     ` Junio C Hamano
  2 siblings, 0 replies; 28+ messages in thread
From: Marco Costalba @ 2007-03-04 12:40 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On 3/4/07, Junio C Hamano <junkio@cox.net> wrote:
>
> * jc/status (Thu Feb 22 02:07:56 2007 -0800) 2 commits
>  - git-status: use in-core --refresh in a read-only repository.
>  - git-runstatus --refresh
>
> These two were done for the specific purpose of helping qgit,
> but I haven't heard about them, so they are on hold.  If they
> are not needed by qgit nor people who like to run git-status in
> a read-only repository, I do not see any reason to keep them.
>

Currently they are not needed by qgit. Probably neither in the future.
It is better to keep working dir view disabled if in a read-only repo
then wait for a sloooow command to return incorrect data (BTW _all_
repo files are always marked as 'modified' due to an issue with
different implementations of lstat in cygwin and ntfs kernel driver).

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

* Re: What's cooking in git.git (topics)
  2007-03-04 12:32     ` Johannes Schindelin
@ 2007-03-04 22:26       ` Linus Torvalds
  2007-03-04 23:07         ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: Linus Torvalds @ 2007-03-04 22:26 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, git



On Sun, 4 Mar 2007, Johannes Schindelin wrote:
> > 
> > This is to output logs in the GNU ChangeLog format.
> 
> FWIW I am opposed to include that. After letting it sink in, Linus' 
> remarks convinced me that this format is not as useful as our other log 
> formats, and for those people who really want it, there is git2cl.

Side note: I would hate to be the person who torpedoes anything that some 
people actually find useful (my motto: "actually useful is a lot better 
than clean, but not as useful")

So in that sense, if people actually find GNU changelog format to be 
useful enough that they want a script for it, I don't think we should 
relegate it to second-class citizenship just because _we_ don't think it's 
a wonderful format.

The GNU code formatting guidelines are much much worse than the GNU 
changelogs, yet we certainly allow people to check in their braindamage 
into git if they want to. The GNU changelog format isn't horrid, and the 
function names can be even nice as a way of seeing "what does this touch".

The fact that GNU changelog is then mis-designed to do per-file changelogs 
etc is more an effect of CVS misfeatures than anything else. But compared 
to all the other things CVS gets wrong, that's a very small detail ;)

		Linus

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

* Re: What's cooking in git.git (topics)
  2007-03-04 22:26       ` Linus Torvalds
@ 2007-03-04 23:07         ` Junio C Hamano
  0 siblings, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-04 23:07 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Johannes Schindelin, git

Linus Torvalds <torvalds@linux-foundation.org> writes:

> On Sun, 4 Mar 2007, Johannes Schindelin wrote:
>> > 
>> > This is to output logs in the GNU ChangeLog format.
>> 
>> FWIW I am opposed to include that. After letting it sink in, Linus' 
>> remarks convinced me that this format is not as useful as our other log 
>> formats, and for those people who really want it, there is git2cl.
>
> Side note: I would hate to be the person who torpedoes anything that some 
> people actually find useful (my motto: "actually useful is a lot better 
> than clean, but not as useful")
>
> So in that sense, if people actually find GNU changelog format to be 
> useful enough that they want a script for it, I don't think we should 
> relegate it to second-class citizenship just because _we_ don't think it's 
> a wonderful format.

Oh, I certainly would not disagree.

But I do not think encouraging people to script is necessarily
relegating it to second-class citizenship, as it appears there
are rooms for project and language specific heuristics to come
in for summarizing the real log into a variant of GNU changelog
that is most useful for a particular project, I think it makes
sense to implement it as a postprocessing filter to git-log -p
(even "git-log -p -U999", if somebody want to do a language
specific function labels), just like Simon did with his git2cl
to output a particular variant (i.e. the one that lacks the
function names) of GNU changelog to suit his projects' needs.

Given time, Simon's script may be improved and prove to be
flexible enough to accomodate the needs of all (or almost all)
other projects that want to use GNU changelog format.  At that
point, we might even want to include it in contrib/ of git.git,
if enough people are interested in it and if distributing with
the core helps the script gain wider exposure.

> The fact that GNU changelog is then mis-designed to do per-file changelogs 
> etc is more an effect of CVS misfeatures than anything else. But compared 
> to all the other things CVS gets wrong, that's a very small detail ;)

That part I 100% agree ;-).

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

* What's cooking in git.git (topics)
  2007-03-04 10:32   ` Junio C Hamano
  2007-03-04 12:32     ` Johannes Schindelin
  2007-03-04 12:40     ` Marco Costalba
@ 2007-03-13  8:49     ` Junio C Hamano
  2007-03-13 17:43       ` Matthias Lederhofer
                         ` (3 more replies)
  2 siblings, 4 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-13  8: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.


* sp/run-command (Mon Mar 12 19:00:29 2007 -0400) 9 commits
 + Use run_command within send-pack
 + Use run_command within receive-pack to invoke index-pack
 + Use run_command within merge-index
 + Use run_command for proxy connections
 + Use RUN_GIT_CMD to run push backends
 + Correct new compiler warnings in builtin-revert
 + Replace fork_with_pipe in bundle with run_command
 + Teach run-command to redirect stdout to /dev/null
 + Teach run-command about stdout redirection

This is really internal clean-up without behaviour change (but I
suspect the error messages from failure cases might be
different).  Good to flush these to 'master' before 1.5.1-rc1.

* dz/mailinfo (Mon Mar 12 15:52:07 2007 -0400) 3 commits
 + Add a couple more test cases to the suite.
 + restrict the patch filtering
 + builtin-mailinfo.c infrastrcture changes

The mailinfo implementation in 'master' I punted to do
complicated multi-part and Don Zickus rewrote much of the hacky
parts.  The less hacky code of mine remains in the tree, the
happier I am.  Should be in 'master' before 1.5.1-rc1.

* jc/repack (Fri Mar 9 03:52:12 2007 -0800) 1 commit
 + prepare_packed_git(): sort packs by age and localness.

This is to improve the access pattern when repository has many
small packfiles, as recent push/fetch tend to keep packs
unexploded.  The idea is to check younger packs and local packs
before others when we iterate over .idx files to look for packed
objects from find_pack_entry().  I've repacked linux-2.6 kernel
repository so that it has one pack per one public tag (which is
a bit excessive -- it results in 70 or so small packs), and saw
"git log -r --raw v2.6.20.." got some speed-up in hot cache case
(4.4 seconds vs 5.3 seconds on average).

* jc/fetch (Sun Mar 4 15:36:08 2007 -0800) 15 commits
 + .gitignore: add git-fetch--tool
 + builtin-fetch--tool: fix reflog notes.
 + git-fetch: retire update-local-ref which is not used anymore.
 + builtin-fetch--tool: make sure not to overstep ls-remote-result
   buffer.
 + fetch--tool: fix uninitialized buffer when reading from stdin
 + builtin-fetch--tool: adjust to updated sha1_object_info().
 + git-fetch--tool takes flags before the subcommand.
 + Use stdin reflist passing in git-fetch.sh
 + Use stdin reflist passing in parse-remote
 + Allow fetch--tool to read from stdin
 + git-fetch: rewrite expand_ref_wildcard in C
 + git-fetch: rewrite another shell loop in C
 + git-fetch: move more code into C.
 + git-fetch--tool: start rewriting parts of git-fetch in C.
 + git-fetch: split fetch_main into fetch_dumb and fetch_native

This is a partial C rewrite of heaviest part of git-fetch to
help fetching between repositories with hundreds of refs.  I do
not like the way it is split, but it may be a good idea to throw
it in 'master' as it does not seem to regress anything and see
if there are other interested people who want to finish the
rewriting.

* pb/branch-track (Thu Mar 8 13:59:54 2007 -0800) 2 commits
 + Fix broken create_branch() in builtin-branch.
 + git-branch, git-checkout: autosetup for remote branch tracking

As I personally do not use "git branch --track", all I can say
is that this, with the fix-up patch already in, does not seem to
regress anything.  Positive feedbacks requested before advancing
to 'master'.

* jb/per-user-exclude (Tue Feb 27 22:31:10 2007 -0500) 1 commit
 + add: Support specifying an excludes file with a configuration
   variable

Same as above.

* ml/workdir (Sun Mar 11 22:29:06 2007 +0100) 3 commits
 - use $GIT_DIR/workdir as working directory with $GIT_DIR
 - introduce GIT_WORK_DIR environment variable
 - rev-parse: --is-bare-repository option

Not in 'next' yet, but I think this one is ready to be tested.
We need testsuite for it before that happens, though.

* js/fetch-progress (Sun Feb 25 13:13:17 2007 -0800) 1 commit
 + git-fetch: add --quiet

This does not break anything, but I am not sure how useful it
would be.

* sb/fetch (Mon Mar 12 19:01:11 2007 -0700) 19 commits
 + git-fetch.sh:append_fetch_head() no longer has a remote_nick
   argument
 + git-fetch: Split fetch and merge logic

I have a soft spot to anything that claims to be a clean-up, but
I suspect that the shell loop this series introduces may defeat
the git-fetch--tool optimization.  Also I think having to base
the patch on this made Paolo's "dot is special token to mean
'git pull' merges from a local branch" needlessly complex (but I
haven't tried rewriting it myself without these two).  Although
I merged these to 'next', I am considering to revert them.

* jc/pathattr (Thu Mar 1 01:20:21 2007 -0800) 5 commits
 - pathattr: allow piping to external program.
 - pathattr: read from git_config().
 - git-show: use pathattr to run "display"
 - pathattr: path based configuration of various attributes.
 + convert: add scaffolding for path based selection of conversion
   routines.

Stalled.

* jc/merge-subtree (Thu Feb 15 16:32:45 2007 -0800) 1 commit
 - A new merge stragety 'subtree'.

Stalled.

* jc/diff (Mon Dec 25 01:08:50 2006 -0800) 2 commits
 - test-para: combined diff between HEAD, index and working tree.
 - para-walk: walk n trees, index and working tree in parallel

Just a reference code.

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

* Re: What's cooking in git.git (topics)
  2007-03-13  8:49     ` Junio C Hamano
@ 2007-03-13 17:43       ` Matthias Lederhofer
  2007-03-13 19:48         ` Junio C Hamano
  2007-03-13 18:49       ` Julian Phillips
                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 28+ messages in thread
From: Matthias Lederhofer @ 2007-03-13 17:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <junkio@cox.net> wrote:
> * ml/workdir (Sun Mar 11 22:29:06 2007 +0100) 3 commits
>  - use $GIT_DIR/workdir as working directory with $GIT_DIR
>  - introduce GIT_WORK_DIR environment variable
>  - rev-parse: --is-bare-repository option
> 
> Not in 'next' yet, but I think this one is ready to be tested.
> We need testsuite for it before that happens, though.

Will you apply the git-init patch too?

I did not write any tests yet, but I can try.

Here is what I thought about:

check that --work-dir overrides $GIT_WORK_DIR and both override
$GIT_DIR/workdir.

use a correct and an invalid path for:
    $GIT_DIR/workdir:
        file containing a relative and an absolute path
        symlink pointing to an invalid path, a directory, a file
        test a symlink to something else (e.g. device, fifo, ..) too?
        directory
    $GIT_WORK_DIR: relative and absolute path
    and test what git does with git-rev-parse
            --is-bare-repository
            --show-prefix
            --show-cdup

test git rev-parse --is-inside-git-dir

A symlink pointing to an invalid path is currently handled as if there
is no $GIT_DIR/workdir at all because stat returns ENOENT.  Is this ok
or should git complain like it does for an invalid path when
$GIT_DIR/workdir is a file?  We could also decide to ignore all
invalid workdir settings and handle this the same as being outside the
workdir.

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

* Re: What's cooking in git.git (topics)
  2007-03-13  8:49     ` Junio C Hamano
  2007-03-13 17:43       ` Matthias Lederhofer
@ 2007-03-13 18:49       ` Julian Phillips
  2007-03-13 19:43       ` Junio C Hamano
  2007-03-25  8:46       ` Junio C Hamano
  3 siblings, 0 replies; 28+ messages in thread
From: Julian Phillips @ 2007-03-13 18:49 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Tue, 13 Mar 2007, Junio C Hamano wrote:

> * jc/fetch (Sun Mar 4 15:36:08 2007 -0800) 15 commits
> + .gitignore: add git-fetch--tool
> + builtin-fetch--tool: fix reflog notes.
> + git-fetch: retire update-local-ref which is not used anymore.
> + builtin-fetch--tool: make sure not to overstep ls-remote-result
>   buffer.
> + fetch--tool: fix uninitialized buffer when reading from stdin
> + builtin-fetch--tool: adjust to updated sha1_object_info().
> + git-fetch--tool takes flags before the subcommand.
> + Use stdin reflist passing in git-fetch.sh
> + Use stdin reflist passing in parse-remote
> + Allow fetch--tool to read from stdin
> + git-fetch: rewrite expand_ref_wildcard in C
> + git-fetch: rewrite another shell loop in C
> + git-fetch: move more code into C.
> + git-fetch--tool: start rewriting parts of git-fetch in C.
> + git-fetch: split fetch_main into fetch_dumb and fetch_native
>
> This is a partial C rewrite of heaviest part of git-fetch to
> help fetching between repositories with hundreds of refs.  I do
> not like the way it is split, but it may be a good idea to throw
> it in 'master' as it does not seem to regress anything and see
> if there are other interested people who want to finish the
> rewriting.

As it happens I was planning to start looking at writing a builtin fetch 
when I got home this evening ... the fetch--tool improvements have whetted 
my appetite for speed ... ;)

> * sb/fetch (Mon Mar 12 19:01:11 2007 -0700) 19 commits
> + git-fetch.sh:append_fetch_head() no longer has a remote_nick
>   argument
> + git-fetch: Split fetch and merge logic
>
> I have a soft spot to anything that claims to be a clean-up, but
> I suspect that the shell loop this series introduces may defeat
> the git-fetch--tool optimization.  Also I think having to base
> the patch on this made Paolo's "dot is special token to mean
> 'git pull' merges from a local branch" needlessly complex (but I
> haven't tried rewriting it myself without these two).  Although
> I merged these to 'next', I am considering to revert them.

I found that this series did introduce a regression, but not a serious 
one.  A null fetch went from ~30s to ~40s IIRC.  I moved 
canon_refs_list_for_fetch from git-parse-remote.sh to git-fetch--tool in 
response, and was pretty much able to get back to where I was before - I 
can send the patch if you want, I didn't think it that important.

-- 
Julian

  ---
The new Congressmen say they're going to turn the government around.  I
hope I don't get run over again.

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

* Re: What's cooking in git.git (topics)
  2007-03-13  8:49     ` Junio C Hamano
  2007-03-13 17:43       ` Matthias Lederhofer
  2007-03-13 18:49       ` Julian Phillips
@ 2007-03-13 19:43       ` Junio C Hamano
  2007-03-13 23:14         ` Santi Béjar
  2007-03-25  8:46       ` Junio C Hamano
  3 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2007-03-13 19:43 UTC (permalink / raw)
  To: git; +Cc: Paolo Bonzini, Santi B��jar

Junio C Hamano <junkio@cox.net> writes:

> Here are the topics that have been cooking.

> * sb/fetch (Mon Mar 12 19:01:11 2007 -0700) 19 commits
>  + git-fetch.sh:append_fetch_head() no longer has a remote_nick
>    argument
>  + git-fetch: Split fetch and merge logic
>
> I have a soft spot to anything that claims to be a clean-up, but
> I suspect that the shell loop this series introduces may defeat
> the git-fetch--tool optimization.  Also I think having to base
> the patch on this made Paolo's "dot is special token to mean
> 'git pull' merges from a local branch" needlessly complex (but I
> haven't tried rewriting it myself without these two).  Although
> I merged these to 'next', I am considering to revert them.

I tried the "NULL fetch between 1000-refs repositories" test,
which prompted the git-fetch--tool work that was done on
jc/fetch topic in 'next', with the following versions:

 (1) 1.5.0 (without any git-fetch--tool optimization)
 (2) master (ditto)
 (3) master with jc/fetch (but not sb/fetch topic)
 (4) next ((3) plus sb/fetch and others)

The test scripts are at the end of this message.  Both (1) and
(2) take 3 minutes 7 seconds wallclock time.  (3) improves it
down to 15 seconds.  (4) makes the operation spend 24 seconds
(the times are all on my primary machine x86-64 with 1GB, hot
cache and average of three runs each).

So the "Split fetch and merge" series hurts the performance
quite a bit.  If it had enough "code clean-up" merit to warrant
this, I would say it probably is a cost we should bear, but I
personally do not see it.

Paolo recently worked on top of next to base the fake '.' remote
patch.  This wants to allow:

	[branch "foo"]
        	remote = .
                merge = refs/heads/master

with an implicit (meaning, you do not have to have this in your
configuration):

	[remote "."]
        	url = .
                fetch = refs/*

so that you can say:

	$ git checkout foo
        $ git pull

to merge from the local 'master' branch.

I haven't reimplemented Paolo's patch on top of (3) above for
comparison, but I have a feeling that it would not have been
helped by the alleged clean-up value of "Split fetch and merge"
patch (iow, I do not think it would be the case that the code
got clearer to understand thanks to the clean-up).

What Paolo's patch needs to do is to bypass the actual fetch and
generate the following line in .git/FETCH_HEAD:

	sha1-of-our-master <TAB> <TAB> branch 'master' of .

I even suspect that "Split fetch and merge", by introducing
FETCH_FETCHED and making FETCH_HEAD generated from it, made
Paolo's patch more difficult to do and the end result less
efficient.

So unless there is a convincing counterexample otherwise, I'd
like to revert the "Split fetch and merge" series.


-- >8 -- setting up test repositories -- >8 --
#!/bin/sh

rm -fr origin clone

mkdir origin
cd origin
git init
: >hello
git add hello
git commit -a -m 'initial'
i=0
while test $i -lt 500
do
	git tag t$i
	git branch b$i
	i=$(($i+1))
done

: >bye
git add bye
git commit -a -m 'second'
while test $i -lt 1000
do
	git tag t$i
	git branch b$i
	i=$(($i+1))
done

cd ..
-- >8 -- NULL fetch test -- >8 --
#!/bin/sh

cd clone
echo '* fetching'
time git fetch origin

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

* Re: What's cooking in git.git (topics)
  2007-03-13 17:43       ` Matthias Lederhofer
@ 2007-03-13 19:48         ` Junio C Hamano
  2007-03-13 20:30           ` Matthias Lederhofer
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2007-03-13 19:48 UTC (permalink / raw)
  To: Matthias Lederhofer; +Cc: git

Matthias Lederhofer <matled@gmx.net> writes:

> Here is what I thought about:
>
> check that --work-dir overrides $GIT_WORK_DIR and both override
> $GIT_DIR/workdir.
>
> use a correct and an invalid path for:
>     $GIT_DIR/workdir:
>         file containing a relative and an absolute path
>         symlink pointing to an invalid path, a directory, a file
>         test a symlink to something else (e.g. device, fifo, ..) too?
>         directory
>     $GIT_WORK_DIR: relative and absolute path
>     and test what git does with git-rev-parse
>             --is-bare-repository
>             --show-prefix
>             --show-cdup
>
> test git rev-parse --is-inside-git-dir

... and do the rev-parse test with *and* *without* $GIT_WORK_DIR
or $GIT_DIR/workdir to make sure there won't be any regressions.

> A symlink pointing to an invalid path is currently handled as if there
> is no $GIT_DIR/workdir at all because stat returns ENOENT.  Is this ok
> or should git complain like it does for an invalid path when
> $GIT_DIR/workdir is a file?  We could also decide to ignore all
> invalid workdir settings and handle this the same as being outside the
> workdir.

Silently ignoring would leave the user who misconfigured it by
mistake.

By the way, why should it be $GIT_DIR/workdir when it appears
everybody is putting things in $GIT_DIR/config?  Shouldn't it be
something like:

	[core]
        	worktree = "/path/to/the/working/tree"

And more importantly, why nobody mentioned the above so far?
Maybe it is a sign that nobody is interested in this new
feature?

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

* Re: What's cooking in git.git (topics)
  2007-03-13 19:48         ` Junio C Hamano
@ 2007-03-13 20:30           ` Matthias Lederhofer
  0 siblings, 0 replies; 28+ messages in thread
From: Matthias Lederhofer @ 2007-03-13 20:30 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <junkio@cox.net> wrote:
> By the way, why should it be $GIT_DIR/workdir when it appears
> everybody is putting things in $GIT_DIR/config?  Shouldn't it be
> something like:
> 
> 	[core]
>         	worktree = "/path/to/the/working/tree"

That's right.  When I wrote the code I first had only support for a
directory in $GIT_DIR/workdir (using a symlink) and added a file after
that.  Using a symlink is still easily possible with core.worktree =
workdir.

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

* Re: What's cooking in git.git (topics)
  2007-03-13 19:43       ` Junio C Hamano
@ 2007-03-13 23:14         ` Santi Béjar
  2007-03-14 11:27           ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: Santi Béjar @ 2007-03-13 23:14 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Paolo Bonzini

On 3/13/07, Junio C Hamano <junkio@cox.net> wrote:
> Junio C Hamano <junkio@cox.net> writes:
>
> > Here are the topics that have been cooking.
>
> > * sb/fetch (Mon Mar 12 19:01:11 2007 -0700) 19 commits
> >  + git-fetch.sh:append_fetch_head() no longer has a remote_nick
> >    argument
> >  + git-fetch: Split fetch and merge logic
> >
> > I have a soft spot to anything that claims to be a clean-up, but
> > I suspect that the shell loop this series introduces may defeat
> > the git-fetch--tool optimization.  Also I think having to base
> > the patch on this made Paolo's "dot is special token to mean
> > 'git pull' merges from a local branch" needlessly complex (but I
> > haven't tried rewriting it myself without these two).  Although
> > I merged these to 'next', I am considering to revert them.
>
> I tried the "NULL fetch between 1000-refs repositories" test,
> which prompted the git-fetch--tool work that was done on
> jc/fetch topic in 'next', with the following versions:
>
>  (1) 1.5.0 (without any git-fetch--tool optimization)
>  (2) master (ditto)
>  (3) master with jc/fetch (but not sb/fetch topic)
>  (4) next ((3) plus sb/fetch and others)
>
> The test scripts are at the end of this message.  Both (1) and
> (2) take 3 minutes 7 seconds wallclock time.  (3) improves it
> down to 15 seconds.  (4) makes the operation spend 24 seconds
> (the times are all on my primary machine x86-64 with 1GB, hot
> cache and average of three runs each).

I think it is not fair, I wonder what would be the time with the merge
logic in sb/fetch in C. I'll try to make the git-fetch--tool
optimization.

>
> So the "Split fetch and merge" series hurts the performance
> quite a bit.  If it had enough "code clean-up" merit to warrant
> this, I would say it probably is a cost we should bear, but I
> personally do not see it.
>
> Paolo recently worked on top of next to base the fake '.' remote
> patch.  This wants to allow:
>
>         [branch "foo"]
>                 remote = .
>                 merge = refs/heads/master
>
> with an implicit (meaning, you do not have to have this in your
> configuration):
>
>         [remote "."]
>                 url = .
>                 fetch = refs/*
>
> so that you can say:
>
>         $ git checkout foo
>         $ git pull
>
> to merge from the local 'master' branch.
>
> I haven't reimplemented Paolo's patch on top of (3) above for
> comparison, but I have a feeling that it would not have been
> helped by the alleged clean-up value of "Split fetch and merge"
> patch (iow, I do not think it would be the case that the code
> got clearer to understand thanks to the clean-up).
>
> What Paolo's patch needs to do is to bypass the actual fetch and
> generate the following line in .git/FETCH_HEAD:
>
>         sha1-of-our-master <TAB> <TAB> branch 'master' of .
>
> I even suspect that "Split fetch and merge", by introducing
> FETCH_FETCHED and making FETCH_HEAD generated from it, made
> Paolo's patch more difficult to do and the end result less
> efficient.

I think my patch to support this is independent of the "Split fetch and merge".

>
> So unless there is a convincing counterexample otherwise, I'd
> like to revert the "Split fetch and merge" series.

Santi

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

* Re: What's cooking in git.git (topics)
  2007-03-13 23:14         ` Santi Béjar
@ 2007-03-14 11:27           ` Junio C Hamano
  2007-03-14 11:47             ` Santi Béjar
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2007-03-14 11:27 UTC (permalink / raw)
  To: Santi Béjar; +Cc: Junio C Hamano, git, Paolo Bonzini

"Santi Béjar" <sbejar@gmail.com> writes:

>> I tried the "NULL fetch between 1000-refs repositories" test,
>> which prompted the git-fetch--tool work that was done on
>> jc/fetch topic in 'next', with the following versions:
>>
>>  (1) 1.5.0 (without any git-fetch--tool optimization)
>>  (2) master (ditto)
>>  (3) master with jc/fetch (but not sb/fetch topic)
>>  (4) next ((3) plus sb/fetch and others)
>>
>> The test scripts are at the end of this message.  Both (1) and
>> (2) take 3 minutes 7 seconds wallclock time.  (3) improves it
>> down to 15 seconds.  (4) makes the operation spend 24 seconds
>> (the times are all on my primary machine x86-64 with 1GB, hot
>> cache and average of three runs each).
>
> I think it is not fair,...

That's a very unexpected response.  I personally do not think
the separation of FETCH_FETCHED made improvements to the code,
but the above numbers do not have anything to do with such
perhaps subjective ascetic judgement.

The comparison showed that the "Split" patch is a step backward
from the existing optimization hack that was specifically made
to solve an issue raised on the list, and you may not like the
numbers, but if you call that is "not fair", I do not know what
could be considered fair.

Yes, life is unfair, but I do not think that word applies to
this particular case.

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

* Re: What's cooking in git.git (topics)
  2007-03-14 11:27           ` Junio C Hamano
@ 2007-03-14 11:47             ` Santi Béjar
  0 siblings, 0 replies; 28+ messages in thread
From: Santi Béjar @ 2007-03-14 11:47 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Paolo Bonzini

On 3/14/07, Junio C Hamano <junkio@cox.net> wrote:
> "Santi Béjar" <sbejar@gmail.com> writes:
>
> >> I tried the "NULL fetch between 1000-refs repositories" test,
> >> which prompted the git-fetch--tool work that was done on
> >> jc/fetch topic in 'next', with the following versions:
> >>
> >>  (1) 1.5.0 (without any git-fetch--tool optimization)
> >>  (2) master (ditto)
> >>  (3) master with jc/fetch (but not sb/fetch topic)
> >>  (4) next ((3) plus sb/fetch and others)
> >>
> >> The test scripts are at the end of this message.  Both (1) and
> >> (2) take 3 minutes 7 seconds wallclock time.  (3) improves it
> >> down to 15 seconds.  (4) makes the operation spend 24 seconds
> >> (the times are all on my primary machine x86-64 with 1GB, hot
> >> cache and average of three runs each).
> >
> > I think it is not fair,...

[...]

>, and you may not like the
> numbers, but if you call that is "not fair", I do not know what
> could be considered fair.

I would consider fair the comparison you did not quote, a comparison
with the merge logic written in C. I know that (4) is a step backwards
in performance as it is now, and I understand that with those numbers
the "Split" patch must be reverted.

Santi

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

* What's cooking in git.git (topics)
  2007-03-13  8:49     ` Junio C Hamano
                         ` (2 preceding siblings ...)
  2007-03-13 19:43       ` Junio C Hamano
@ 2007-03-25  8:46       ` Junio C Hamano
  2007-03-25  9:59         ` Johannes Schindelin
  2007-03-26  6:40         ` Florian Weimer
  3 siblings, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-25  8:46 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.

* jc/bisect (Fri Mar 23 17:54:03 2007 -0700) 6 commits
 + make the previous optimization work also on path-limited rev-list
   --bisect
 + rev-list --bisect: Fix "halfway" optimization.
 + t6004: add a bit more path optimization test.
 + git-rev-list --bisect: optimization
 + git-rev-list: add --bisect-vars option.
 + t6002: minor spelling fix.

This improves "rev-list --bisect" performance, sometimes
significantly, especially in a repository with long lines of
single-parent commits.  This is only about performance, and as
we are already in -rc1, the topic will have to wait 1.5.1.

* fl/cvsserver (Mon Mar 19 16:56:01 2007 +0100) 5 commits
 + cvsserver: Abort if connect to database fails
 + cvsserver: Make the database backend configurable
 + cvsserver: Allow to override the configuration per access method
 + cvsserver: Handle three part keys in git config correctly
 + cvsserver: Introduce new state variable 'method'

This is a beginning of supporting use of different database
backends, other than sqlite, with git-cvsserver.  Will not be in
'master' until 1.5.1 is done.

* js/remote-show-push (Sun Mar 18 21:34:46 2007 +0100) 1 commit
 + Teach git-remote to list pushed branches.

This is a new feature but of very little risk of breaking
anything, so I'll merge it to 'master'.

* ml/workdir (Sat Mar 17 02:58:55 2007 +0100) 6 commits
 . git-init: set core.workdir when GIT_WORK_DIR is specified
 . test GIT_WORK_DIR
 . test git-rev-parse
 . core.workdir config variable
 . introduce GIT_WORK_DIR environment variable
 . rev-parse: --is-bare-repository option

Waiting for a resend without "oops", "ah this is better"
iterations, but in no hurry, as it won't be in 'master' until
1.5.1 is done.

* jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
 + git-log --first-parent: show only the first parent log

This makes viewing topic-heavy style of project history
pleasant, at least in my opinion.  With a bit of cheering up,
I'd merge it to 'master', as it has been cooking in 'next'
without causing problems, and is of low-impact kind.  But it can
wait until 1.5.1 is done.

* jc/read-tree-df (Thu Mar 15 23:25:22 2007 -0700) 1 commit
 . Fix switching to a branch with D/F when current branch has file D.

This is unfortunately way premature as it seems to expose other
breakages this too-strict safety measure prevents from
happening.  We need to rethink the whole unpack_trees() business
after 1.5.1.

* jc/pathattr (Thu Mar 1 01:20:21 2007 -0800) 5 commits
 . pathattr: allow piping to external program.
 . pathattr: read from git_config().
 . git-show: use pathattr to run "display"
 . pathattr: path based configuration of various attributes.
 + convert: add scaffolding for path based selection of conversion
   routines.

Stalled.  gitattributes support should be one of the focus in
the 1.5.2 cycle.

* jc/merge-subtree (Thu Feb 15 16:32:45 2007 -0800) 1 commit
 - A new merge stragety 'subtree'.
* js/fetch-progress (Sun Feb 25 13:13:17 2007 -0800) 1 commit
 + git-fetch: add --quiet
* jc/diff (Mon Dec 25 01:08:50 2006 -0800) 2 commits
 . test-para: combined diff between HEAD, index and working tree.
 . para-walk: walk n trees, index and working tree in parallel

The above are stalled.

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

* Re: What's cooking in git.git (topics)
  2007-03-25  8:46       ` Junio C Hamano
@ 2007-03-25  9:59         ` Johannes Schindelin
  2007-03-25 22:20           ` Junio C Hamano
  2007-03-26  6:40         ` Florian Weimer
  1 sibling, 1 reply; 28+ messages in thread
From: Johannes Schindelin @ 2007-03-25  9:59 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Sun, 25 Mar 2007, Junio C Hamano wrote:

> * jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
>  + git-log --first-parent: show only the first parent log
> 
> This makes viewing topic-heavy style of project history pleasant, at 
> least in my opinion.  With a bit of cheering up, I'd merge it to 
> 'master', as it has been cooking in 'next' without causing problems, and 
> is of low-impact kind.  But it can wait until 1.5.1 is done.

*lol* I just tried it on 'next'...

But I agree that it is ready to be merged, and that it is useful.

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2007-03-25  9:59         ` Johannes Schindelin
@ 2007-03-25 22:20           ` Junio C Hamano
  2007-03-25 22:25             ` Johannes Schindelin
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2007-03-25 22:20 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

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

> On Sun, 25 Mar 2007, Junio C Hamano wrote:
>
>> * jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
>>  + git-log --first-parent: show only the first parent log
>> 
>> This makes viewing topic-heavy style of project history pleasant, at 
>> least in my opinion.  With a bit of cheering up, I'd merge it to 
>> 'master', as it has been cooking in 'next' without causing problems, and 
>> is of low-impact kind.  But it can wait until 1.5.1 is done.
>
> *lol* I just tried it on 'next'...
>
> But I agree that it is ready to be merged, and that it is useful.

Hmph.  I am having hard time to decide what to make out of that
"*lol*".  That branch is exactly where this is useful, as it is
a pure integration branch that never gets its own commits (there
is one exception "Revert" that is directly on it, but that is an
exception. And making an exception stand out is also a good
thing). I do not see there is anything to laugh out loudly
about.

On the other hand, running "git log -F master" gives a mixed
picture, as non-merge commits on 'master' are supposed to be
obvious patches that do not need cooking period in 'next', but
without the "pee in the snow merges for fast-forwarding case" we
do not use, commits on a topic that was born and cooked fully
while 'master' was quiescent would also appear on the output,
making it a less useful to tell which ones are "obviously
correct" ones and which ones were cooked in their own topics.

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

* Re: What's cooking in git.git (topics)
  2007-03-25 22:20           ` Junio C Hamano
@ 2007-03-25 22:25             ` Johannes Schindelin
  0 siblings, 0 replies; 28+ messages in thread
From: Johannes Schindelin @ 2007-03-25 22:25 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Sun, 25 Mar 2007, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Sun, 25 Mar 2007, Junio C Hamano wrote:
> >
> >> * jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
> >>  + git-log --first-parent: show only the first parent log
> >> 
> >> This makes viewing topic-heavy style of project history pleasant, at 
> >> least in my opinion.  With a bit of cheering up, I'd merge it to 
> >> 'master', as it has been cooking in 'next' without causing problems, and 
> >> is of low-impact kind.  But it can wait until 1.5.1 is done.
> >
> > *lol* I just tried it on 'next'...
> >
> > But I agree that it is ready to be merged, and that it is useful.
> 
> Hmph.  I am having hard time to decide what to make out of that "*lol*".

I was not sure what to expect, and thus was surprised by _that_ many 
diagonal lines...

But this picture -- unexpected as it was -- makes tons of sense if you are 
interested to see e.g. the history of a topic branch which was merged into 
'next'.

So, I'm all in favour of this feature.

Ciao,
Dscho

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

* Re: What's cooking in git.git (topics)
  2007-03-25  8:46       ` Junio C Hamano
  2007-03-25  9:59         ` Johannes Schindelin
@ 2007-03-26  6:40         ` Florian Weimer
  2007-03-26  8:11           ` Junio C Hamano
  2007-03-27 19:51           ` [PATCH] Document git-log --first-parent Junio C Hamano
  1 sibling, 2 replies; 28+ messages in thread
From: Florian Weimer @ 2007-03-26  6:40 UTC (permalink / raw)
  To: git

* Junio C. Hamano:

> * jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
>  + git-log --first-parent: show only the first parent log

I think it's still missing documentation.

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

* Re: What's cooking in git.git (topics)
  2007-03-26  6:40         ` Florian Weimer
@ 2007-03-26  8:11           ` Junio C Hamano
  2007-03-27 19:51           ` [PATCH] Document git-log --first-parent Junio C Hamano
  1 sibling, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-26  8:11 UTC (permalink / raw)
  To: Florian Weimer; +Cc: git

Florian Weimer <fw@deneb.enyo.de> writes:

> * Junio C. Hamano:
>
>> * jc/fpl (Tue Mar 13 01:57:22 2007 -0700) 1 commit
>>  + git-log --first-parent: show only the first parent log
>
> I think it's still missing documentation.

Patches welcome.

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

* [PATCH] Document git-log --first-parent
  2007-03-26  6:40         ` Florian Weimer
  2007-03-26  8:11           ` Junio C Hamano
@ 2007-03-27 19:51           ` Junio C Hamano
  1 sibling, 0 replies; 28+ messages in thread
From: Junio C Hamano @ 2007-03-27 19:51 UTC (permalink / raw)
  To: Florian Weimer; +Cc: git


Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 Documentation/git-log.txt |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index 361eaec..030edaf 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -38,6 +38,11 @@ include::pretty-formats.txt[]
 	and <until>, see "SPECIFYING REVISIONS" section in
 	gitlink:git-rev-parse[1].
 
+--first-parent::
+	Follow only the first parent commit upon seeing a merge
+	commit.  This  option gives a better overview of the
+	evolution of a particular branch.
+
 -p::
 	Show the change the commit introduces in a patch form.
 
-- 
1.5.1.rc2.618.g98453b

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

end of thread, other threads:[~2007-03-27 19:51 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-20  7:42 What's cooking in git.git (topics) Junio C Hamano
2007-02-20  8:20 ` Eric Wong
2007-02-20  8:35   ` Junio C Hamano
2007-02-20  8:30 ` Alexander Litvinov
2007-02-23  8:51 ` Junio C Hamano
2007-02-23 14:48   ` Johannes Schindelin
2007-02-23 18:12     ` Junio C Hamano
2007-03-04 10:32   ` Junio C Hamano
2007-03-04 12:32     ` Johannes Schindelin
2007-03-04 22:26       ` Linus Torvalds
2007-03-04 23:07         ` Junio C Hamano
2007-03-04 12:40     ` Marco Costalba
2007-03-13  8:49     ` Junio C Hamano
2007-03-13 17:43       ` Matthias Lederhofer
2007-03-13 19:48         ` Junio C Hamano
2007-03-13 20:30           ` Matthias Lederhofer
2007-03-13 18:49       ` Julian Phillips
2007-03-13 19:43       ` Junio C Hamano
2007-03-13 23:14         ` Santi Béjar
2007-03-14 11:27           ` Junio C Hamano
2007-03-14 11:47             ` Santi Béjar
2007-03-25  8:46       ` Junio C Hamano
2007-03-25  9:59         ` Johannes Schindelin
2007-03-25 22:20           ` Junio C Hamano
2007-03-25 22:25             ` Johannes Schindelin
2007-03-26  6:40         ` Florian Weimer
2007-03-26  8:11           ` Junio C Hamano
2007-03-27 19:51           ` [PATCH] Document git-log --first-parent Junio C Hamano

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