]> Kevux Git Server - rit/log
rit
19 years agoDon't try to parse any options with git-p4 debug but pass it straight on to p4
Simon Hausmann [Sun, 25 Mar 2007 22:13:51 +0000 (00:13 +0200)]
Don't try to parse any options with git-p4 debug but pass it straight on to p4

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoMerge branch 'maint'
Junio C Hamano [Sun, 25 Mar 2007 22:08:11 +0000 (15:08 -0700)]
Merge branch 'maint'

* maint:
  user-manual: introduce "branch" and "branch head" differently
  glossary: clean up cross-references
  glossary: stop generating automatically
  user-manual: Use def_ instead of ref_ for glossary references.
  user-manual.txt: fix a tiny typo.
  user-manual: run xsltproc without --nonet option

19 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Sun, 25 Mar 2007 22:07:27 +0000 (15:07 -0700)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: introduce "branch" and "branch head" differently
  glossary: clean up cross-references
  glossary: stop generating automatically
  user-manual: Use def_ instead of ref_ for glossary references.
  user-manual.txt: fix a tiny typo.
  user-manual: run xsltproc without --nonet option

19 years agoMerge branch 'js/remote-show-push'
Junio C Hamano [Sun, 25 Mar 2007 08:45:06 +0000 (01:45 -0700)]
Merge branch 'js/remote-show-push'

* js/remote-show-push:
  Teach git-remote to list pushed branches.

19 years agoMerge branch 'maint'
Junio C Hamano [Sun, 25 Mar 2007 07:21:40 +0000 (00:21 -0700)]
Merge branch 'maint'

* maint:
  gitweb: Add some installation notes in gitweb/INSTALL
  gitweb: Fix not marking signoff lines in "log" view
  gitweb: Don't escape attributes in CGI.pm HTML methods
  gitweb: Change to use explicitly function call cgi->escapHTML()

19 years agoUse diff* with --exit-code in git-am, git-rebase and git-merge-ours
Alex Riesen [Sun, 25 Mar 2007 00:56:13 +0000 (01:56 +0100)]
Use diff* with --exit-code in git-am, git-rebase and git-merge-ours

This simplifies the shell code, reduces its memory footprint, and
speeds things up. The performance improvements should be noticable
when git-rebase works on big commits.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDocument --quiet option to git-diff
Alex Riesen [Sun, 25 Mar 2007 00:55:43 +0000 (01:55 +0100)]
Document --quiet option to git-diff

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agowrite_sha1_from_fd() should make new objects read-only
Nicolas Pitre [Sat, 24 Mar 2007 16:02:27 +0000 (12:02 -0400)]
write_sha1_from_fd() should make new objects read-only

... like it is done everywhere else.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agomake it more obvious that temporary files are temporary files
Nicolas Pitre [Sat, 24 Mar 2007 15:58:22 +0000 (11:58 -0400)]
make it more obvious that temporary files are temporary files

When some operations are interrupted (or "die()'d" or crashed) then the
partial object/pack/index file may remain around.  Make it more obvious
in their name that those files are temporary stuff and can be cleaned up
if no operation is in progress.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoupdate-hook: remove e-mail sending hook.
Andy Parkins [Fri, 23 Mar 2007 10:21:59 +0000 (10:21 +0000)]
update-hook: remove e-mail sending hook.

The update hook's only job is to decide is a particular update
is allowed or not.  It was not the right place to send out
update notification e-mails from to begin with, as the final
stage of updating refs can fail after this hook runs.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogitweb: Add some installation notes in gitweb/INSTALL
Jakub Narebski [Sat, 24 Mar 2007 19:59:53 +0000 (20:59 +0100)]
gitweb: Add some installation notes in gitweb/INSTALL

Add some installation and configuration notes for gitweb in
gitweb/INSTALL. Make use of filling gitweb configuration by
Makefile.

It does not cover (yet?) all the configuration variables and
options.

Some of contents duplicates information in gitweb/README file
(it is referred from gitweb/INSTALL).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogitweb: Fix not marking signoff lines in "log" view
Jakub Narebski [Sat, 24 Mar 2007 19:59:13 +0000 (20:59 +0100)]
gitweb: Fix not marking signoff lines in "log" view

The CSS selector for signoff lines style was too strict: in the "log"
view the commit message is not encompassed in container "page_body"
div.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogitweb: Don't escape attributes in CGI.pm HTML methods
Jakub Narebski [Wed, 7 Mar 2007 01:21:25 +0000 (02:21 +0100)]
gitweb: Don't escape attributes in CGI.pm HTML methods

There is no need to escape HTML tag's attributes in CGI.pm
HTML methods (like CGI::a()), because CGI.pm does attribute
escaping automatically.

  $cgi->a({ ... -attribute => atribute_value }, tag_contents)

is translated to

  <a ... attribute="attribute_value">tag_contents</a>

The rules for escaping attribute values (which are string contents) are
different. For example you have to take care about escaping embedded '"'
and "'" characters; CGI::a() does that for us automatically.

CGI::a() does not HTML escape tag_contents; we would need to write

  <a href="URL">some <b>bold</b> text</a>

for example. So we use esc_html (or esc_path) to escape tag_contents
as needed.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogitweb: Change to use explicitly function call cgi->escapHTML()
Li Yang [Tue, 6 Mar 2007 03:58:56 +0000 (11:58 +0800)]
gitweb: Change to use explicitly function call cgi->escapHTML()

Change to use explicitly function call cgi->escapHTML().
This fix the problem on some systems that escapeHTML() is not
functioning, as default CGI is not setting 'escape' parameter.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoPrefer git command over git-command.
Simon Hausmann [Sat, 24 Mar 2007 15:35:05 +0000 (16:35 +0100)]
Prefer git command over git-command.

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agogit-am documentation: describe what is taken from where.
Junio C Hamano [Sat, 24 Mar 2007 10:08:54 +0000 (03:08 -0700)]
git-am documentation: describe what is taken from where.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-revert: Revert revert message to old behaviour
Johannes Schindelin [Fri, 23 Mar 2007 16:06:11 +0000 (17:06 +0100)]
git-revert: Revert revert message to old behaviour

When converting from the shell script, based on a misreading of the
sed invocation, the builtin included the abbreviated commit name,
and did _not_ include the quotes around the oneline message.

This fixes it.

[jc: with a fix for the typo/thinko spotted by Linus, and also
 removing the unwanted abbrev at the beginning.]

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoMinor cosmetic fixlet for the git-p4 submit sync question.
Simon Hausmann [Sat, 24 Mar 2007 08:18:20 +0000 (09:18 +0100)]
Minor cosmetic fixlet for the git-p4 submit sync question.

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoDifferent versions of p4 have different output for the where command ;(
Simon Hausmann [Sat, 24 Mar 2007 08:15:11 +0000 (09:15 +0100)]
Different versions of p4 have different output for the where command ;(

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agomake the previous optimization work also on path-limited rev-list --bisect
Junio C Hamano [Sat, 24 Mar 2007 00:54:03 +0000 (17:54 -0700)]
make the previous optimization work also on path-limited rev-list --bisect

The trick is to give a child commit that is not tree-changing
the same depth as its parent, so that the depth is propagated
properly along strand of pearls.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agorev-list --bisect: Fix "halfway" optimization.
Junio C Hamano [Fri, 23 Mar 2007 07:40:54 +0000 (00:40 -0700)]
rev-list --bisect: Fix "halfway" optimization.

If you have 5 commits in the set, commits that reach 2 or 3
commits are at halfway.  If you have 6 commits, only commits
that reach exactly 3 commits are at halfway.  The earlier one is
completely botched the math.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoMerge branch 'master' into jc/bisect
Junio C Hamano [Sat, 24 Mar 2007 00:38:22 +0000 (17:38 -0700)]
Merge branch 'master' into jc/bisect

This is to merge in the fix for path-limited bisection
from the 'master' branch.

19 years agoMerge branch 'maint'
Junio C Hamano [Sat, 24 Mar 2007 06:29:37 +0000 (23:29 -0700)]
Merge branch 'maint'

* maint:
  gitweb: Fix "next" link in commit view

19 years agoDocumentation: bisect: make a comment fit better in the man page.
Christian Couder [Sat, 24 Mar 2007 05:32:05 +0000 (06:32 +0100)]
Documentation: bisect: make a comment fit better in the man page.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDocumentation: bisect: add some titles to some paragraphs.
Christian Couder [Sat, 24 Mar 2007 05:30:33 +0000 (06:30 +0100)]
Documentation: bisect: add some titles to some paragraphs.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDocumentation: bisect: reformat more paragraphs.
Christian Couder [Sat, 24 Mar 2007 05:31:49 +0000 (06:31 +0100)]
Documentation: bisect: reformat more paragraphs.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDocumentation: bisect: reword one paragraph.
Christian Couder [Sat, 24 Mar 2007 05:31:16 +0000 (06:31 +0100)]
Documentation: bisect: reword one paragraph.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDocumentation: bisect: reformat some paragraphs.
Christian Couder [Sat, 24 Mar 2007 05:29:58 +0000 (06:29 +0100)]
Documentation: bisect: reformat some paragraphs.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoFix path-limited "rev-list --bisect" termination condition.
Junio C Hamano [Fri, 23 Mar 2007 20:34:49 +0000 (13:34 -0700)]
Fix path-limited "rev-list --bisect" termination condition.

In a path-limited bisection, when the $bad commit is not
changing the limited path, and the number of suspects is 1, the
code miscounted and returned $bad from find_bisection(), which
is not marked with TREECHANGE.  This is of course filtered by
the output routine, resulting in an empty output, in turn
causing git-bisect driver to say "$bad was both good and bad".

Illustration.  Suppose you have these four commits, and only C
changes path P.  You know D is bad and A is good.

A---B---C*--D

git-bisect driver runs this to find a bisection point:

$ git rev-list --bisect A..D -- P

which calls find_bisection() with B, C and D.  The set of
commits that is given to this function is the same set of
commits as rev-list without --bisect option and pathspec
returns.  Among them, only C is marked with TREECHANGE.  Let's
call the set of commits given to find_bisection() that are
marked with TREECHANGE (or all of them if no path limiter is in
effect) "the bisect set".  In the above example, the size of the
bisect set is 1 (contains only "C").

For each commit in its input, find_bisection() computes the
number of commits it can reach in the bisect set.  For a commit
in the bisect set, this number includes itself, so the number is
1 or more.  This number is called "depth", and computed by
count_distance() function.

When you have a bisect set of N commits, and a commit has depth
D, how good is your bisection if you returned that commit?  How
good this bisection is can be measured by how many commits are
effectively tested "together" by testing one commit.

Currently you have (N-1) untested commits (the tip of the bisect
set, although it is included in the bisect set, is already known
to be bad).  If the commit with depth D turns out to be bad,
then your next bisect set will have D commits and you will have
(D-1) untested commits left, which means you tested (N-1)-(D-1)
= (N-D) commits with this bisection.  If it turns out to be good, then
your next bisect set will have (N-D) commits, and you will have
(N-D-1) untested commits left, which means you tested
(N-1)-(N-D-1) = D commits with this bisection.

Therefore, the goodness of this bisection is is min(N-D, D), and
find_bisection() function tries to find a commit that maximizes
this, by initializing "closest" variable to 0 and whenever a
commit with the goodness that is larger than the current
"closest" is found, that commit and its goodness are remembered
by updating "closest" variable.  The "the commit with the best
goodness so far" is kept in "best" variable, and is initialized
to a commit that happens to be at the beginning of the list of
commits given to this function (which may or may not be in the
bisect set when path-limit is in use).

However, when N is 1, then the sole tree-changing commit has
depth of 1, and min(N-D, D) evaluates to 0.  This is not larger
than the initial value of "closest", and the "so far the best
one" commit is never replaced in the loop.

When path-limit is not in use, this is not a problem, as any
commit in the input set is tree-changing.  But when path-limit
is in use, and when the starting "bad" commit does not change
the specified path, it is not correct to return it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogitweb: Fix "next" link in commit view
Jakub Narebski [Fri, 23 Mar 2007 20:04:31 +0000 (21:04 +0100)]
gitweb: Fix "next" link in commit view

Fix copy'n'paste error in commit c9d193df which caused that "next"
link for merge commits in "commit" view
  (merge: _commit_ _commit_ ...)
was to "commitdiff" view instead of being to "commit" view.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-bisect.sh: properly dq $GIT_DIR
Junio C Hamano [Fri, 23 Mar 2007 20:24:22 +0000 (13:24 -0700)]
git-bisect.sh: properly dq $GIT_DIR

Otherwise you would be in trouble if your GIT_DIR has IFS letters in it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-bisect: typofix
Junio C Hamano [Fri, 23 Mar 2007 20:15:21 +0000 (13:15 -0700)]
git-bisect: typofix

The branch you are on while bisecting is always "bisect", and
checking for "refs/heads/bisect*" is wrong.  Only check if it is
exactly "refs/heads/bisect".

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocheckout: report where the new HEAD is upon detaching HEAD
Junio C Hamano [Fri, 23 Mar 2007 09:37:19 +0000 (02:37 -0700)]
checkout: report where the new HEAD is upon detaching HEAD

After "git reset" moves the HEAD around, it reports which commit
you are on, which gives the user a warm fuzzy feeling of
assurance.  Give the same assurance from git-checkout when
moving the detached HEAD around.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agot6004: add a bit more path optimization test.
Junio C Hamano [Fri, 23 Mar 2007 06:22:07 +0000 (23:22 -0700)]
t6004: add a bit more path optimization test.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoBisect: implement "git bisect run <cmd>..." to automatically bisect.
Christian Couder [Fri, 23 Mar 2007 07:49:59 +0000 (08:49 +0100)]
Bisect: implement "git bisect run <cmd>..." to automatically bisect.

This idea was suggested by Bill Lear
(Message-ID: <17920.38942.364466.642979@lisa.zopyra.com>)
and I think it is a very good one.

This patch adds a new test file for "git bisect run", but there
is currently only one basic test.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoBisect: convert revs given to good and bad to commits
Uwe Kleine-König [Thu, 22 Mar 2007 16:18:08 +0000 (17:18 +0100)]
Bisect: convert revs given to good and bad to commits

Without this the rev could be (e.g.) a tag and then the condition to end the
bisect might fail and you have to check the already known to be bad revision
once more.

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoUse the new incremental import style by default
Simon Hausmann [Fri, 23 Mar 2007 08:30:41 +0000 (09:30 +0100)]
Use the new incremental import style by default

Signed-off-by: Simon Hausmann <shausman@trolltech.com>
19 years agoMake it possible to run git-p4 submit from within the git repository
Simon Hausmann [Fri, 23 Mar 2007 08:16:07 +0000 (09:16 +0100)]
Make it possible to run git-p4 submit from within the git repository

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agot4118: be nice to non-GNU sed
Johannes Schindelin [Fri, 23 Mar 2007 01:05:28 +0000 (21:05 -0400)]
t4118: be nice to non-GNU sed

Elias Pipping:
> I'm on a mac, hence /usr/bin/sed is not gnu sed, which makes
> t4118 fail.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Ack'd-by: Elias Pipping <pipping@macports.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-apply: Do not free the wrong buffer when we convert the data for writeout
Junio C Hamano [Fri, 23 Mar 2007 00:32:51 +0000 (17:32 -0700)]
git-apply: Do not free the wrong buffer when we convert the data for writeout

When we write out the result of patch application, we sometimes
need to munge the data (e.g. under core.autocrlf).  After doing
so, what we should free is the temporary buffer that holds the
converted data returned from convert_to_working_tree(), not the
original one.

This patch also moves the call to open() up in the function, as
the caller expects us to fail cheaply if leading directories
need to be created (and then the caller creates them and calls
us again).  For that calling pattern, attempting conversion
before opening the file adds unnecessary overhead.

Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoBrand new smart incremental import that doesn't need tags or git repo-config :)
Simon Hausmann [Thu, 22 Mar 2007 21:17:42 +0000 (22:17 +0100)]
Brand new smart incremental import that doesn't need tags or git repo-config :)

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoSet the default branch in run, not in the constructor
Simon Hausmann [Thu, 22 Mar 2007 20:34:16 +0000 (21:34 +0100)]
Set the default branch in run, not in the constructor

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoHelper function to check the existance of a revision
Simon Hausmann [Thu, 22 Mar 2007 20:27:14 +0000 (21:27 +0100)]
Helper function to check the existance of a revision

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoAdded some helper function(s) to parse the depot path and change number from the...
Simon Hausmann [Thu, 22 Mar 2007 20:10:25 +0000 (21:10 +0100)]
Added some helper function(s) to parse the depot path and change number from the log message

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoChanged the default branch for imports from "master" to "p4"
Simon Hausmann [Thu, 22 Mar 2007 19:36:28 +0000 (20:36 +0100)]
Changed the default branch for imports from "master" to "p4"

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoChanged the format of the imported log message slightly, so that it's easier to parse...
Simon Hausmann [Thu, 22 Mar 2007 19:27:41 +0000 (20:27 +0100)]
Changed the format of the imported log message slightly, so that it's easier to parse again.

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoMerge git://git2.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Thu, 22 Mar 2007 10:05:34 +0000 (03:05 -0700)]
Merge git://git2.kernel.org/pub/scm/gitk/gitk

* git://git2.kernel.org/pub/scm/gitk/gitk:
  [PATCH] prefer "git COMMAND" over "git-COMMAND" in gitk

19 years agoMerge branch 'maint'
Junio C Hamano [Thu, 22 Mar 2007 10:05:25 +0000 (03:05 -0700)]
Merge branch 'maint'

* maint:
  Documentation/pack-format.txt: Clear up description of types.
  fix typo in git-am manpage

19 years agoDocumentation/pack-format.txt: Clear up description of types.
Peter Eriksen [Wed, 21 Mar 2007 18:43:37 +0000 (19:43 +0100)]
Documentation/pack-format.txt: Clear up description of types.

Signed-off-by: Peter Eriksen <s022018@student.dtu.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoupdate HEAD reflog when branch pointed to by HEAD is directly modified
Nicolas Pitre [Wed, 21 Mar 2007 21:11:44 +0000 (17:11 -0400)]
update HEAD reflog when branch pointed to by HEAD is directly modified

The HEAD reflog is updated as well as the reflog for the branch pointed
to by HEAD whenever it is referenced with "HEAD".

There are some cases where a specific branch may be modified directly.
In those cases, the HEAD reflog should be updated as well if it is a
symref to that branch in order to be consistent.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoupdate-hook: abort early if the project description is unset
Andy Parkins [Tue, 20 Mar 2007 10:58:32 +0000 (10:58 +0000)]
update-hook: abort early if the project description is unset

It was annoying to always have the first email from a project be from
the "Unnamed repository; edit this file to name it for gitweb project";
just because it's so easy to forget to set it.

This patch checks to see if the description file is still default (or
empty) and aborts if so - allowing you to fix the problem before sending
out silly looking emails to every developer.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-merge: Put FETCH_HEAD data in merge commit message
Michael S. Tsirkin [Thu, 22 Mar 2007 09:07:30 +0000 (11:07 +0200)]
git-merge: Put FETCH_HEAD data in merge commit message

This makes git-fetch <URL> && git-merge FETCH_HEAD produce the
same merge message as git-pull <URL>.

Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-rebase: make 'rebase HEAD branch' work as expected.
Junio C Hamano [Thu, 22 Mar 2007 09:54:59 +0000 (02:54 -0700)]
git-rebase: make 'rebase HEAD branch' work as expected.

When you want to amend the commit message of 3 commits before
the tip of the current branch, say 'master',

A--B--C--D--E(master)

it is sometimes handy to make your head detached at that commit
with:

$ git checkout HEAD~3 ;# check out B
$ git commit --amend ;# without modifying contents...

to create:

          .B'(HEAD)
         /
A--B--C--D--E(master)

and then rebase 'master' branch onto HEAD with this:

$ git rebase HEAD master

to result in:

          .B'-C'-D'-E(master=HEAD)
         /
A--B--C--D--E

However, the current code interprets HEAD after it switches to
the branch 'master', which means the rebase will not do
anything.  You have to say something unwieldly like this
instead:

$ git rebase $(git rev-parse HEAD) master

This fixes it by expanding the $onto commit name before
switching to the target branch.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-rev-list --bisect: optimization
Junio C Hamano [Thu, 22 Mar 2007 05:16:24 +0000 (22:16 -0700)]
git-rev-list --bisect: optimization

This improves the performance of revision bisection.

The idea is to avoid rather expensive count_distance() function,
which counts the number of commits that are reachable from any
given commit (including itself) in the set.  When a commit has
only one relevant parent commit, the number of commits the
commit can reach is exactly the number of commits that the
parent can reach plus one; instead of running count_distance()
on commits that are on straight single strand of pearls, we can
just add one to the parents' count.

On the other hand, for a merge commit, because the commits
reachable from one parent can be reachable from another parent,
you cannot just add the parents' counts up plus one for the
commit itself; that would overcount ancestors that are reachable
from more than one parents.

The algorithm used in the patch runs count_distance() on merge
commits, and uses the util field of commit objects to remember
them.  After that, the number of commits reachable from each of
the remaining commits is counted by finding a commit whose count
is not yet known but the count for its (sole) parent is known,
and adding one to the parent's count, until we assign numbers to
everybody.

Another small optimization is whenever we find a half-way commit
(that is, a commit that can reach exactly half of the commits),
we stop giving counts to remaining commits, as we will not find
any better commit than we just found.

The performance to bisect between v1.0.0 and v1.5.0 in git.git
repository was improved by saying good and bad in turns from
3.68 seconds down to 1.26 seconds.  Bisecting the kernel between
v2.6.18 and v2.6.20 was sped up from 21.84 seconds down to 4.22
seconds.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-rev-list: add --bisect-vars option.
Junio C Hamano [Thu, 22 Mar 2007 05:15:54 +0000 (22:15 -0700)]
git-rev-list: add --bisect-vars option.

This adds --bisect-vars option to rev-list.  The output is suitable
for `eval` in shell and defines five variables:

 - bisect_rev is the next revision to test.
 - bisect_nr is the expected number of commits to test after
   bisect_rev is tested.
 - bisect_good is the expected number of commits to test
   if bisect_rev turns out to be good.
 - bisect_bad is the expected number of commits to test
   if bisect_rev turns out to be bad.
 - bisect_all is the number of commits we are bisecting right now.

The documentation text was partly stolen from Johannes
Schindelin's patch.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocvsserver: Abort if connect to database fails
Frank Lichtenheld [Mon, 19 Mar 2007 15:56:01 +0000 (16:56 +0100)]
cvsserver: Abort if connect to database fails

Currently all calls to the database backend make no
error checking or handling at all. At least abort
if the connection to the database failed since
there is really no way we could do anything useful
after that.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocvsserver: Make the database backend configurable
Frank Lichtenheld [Mon, 19 Mar 2007 15:56:00 +0000 (16:56 +0100)]
cvsserver: Make the database backend configurable

Make all the different parts of the database backend connection
configurable. This adds the following string configuration variables:
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbuser
- gitcvs.dbpass
The default values emulate the current behavior exactly for
backwards compatibility.
All configuration variables can also be specified for a specific
access method (i.e. in the form gitcvs.<method>.<var>)

The dbdriver/dbuser/dbpass variables are added for completness.
No other backend than SQLite is tested yet.
The dbname variable on the other hand is useful with this backend
already (to not discriminate against other possible backends
it was not splitted in dbdir and dbfile).

Both dbname and dbuser support dynamic variable substitution where
the available variables are:
%m -- the CVS 'module' (i.e. GIT 'head') worked on
%a -- CVS access method used (i.e. 'ext' or 'pserver')
%u -- User name of the user invoking git-cvsserver
%G -- .git directory name
%g -- .git directory name, mangled to be used in a filename,
      currently this substitutes all chars except for [\w.-]
      with '_'

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocvsserver: Allow to override the configuration per access method
Frank Lichtenheld [Mon, 19 Mar 2007 15:55:59 +0000 (16:55 +0100)]
cvsserver: Allow to override the configuration per access method

Allow to override the gitcvs.enabled and gitcvs.logfile configuration
variables for each access method (i.e. "ext" or "pserver") in the
form gitcvs.<method>.<var>

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocvsserver: Handle three part keys in git config correctly
Frank Lichtenheld [Mon, 19 Mar 2007 15:55:58 +0000 (16:55 +0100)]
cvsserver: Handle three part keys in git config correctly

This is intended to be used in the form gitcvs.<method>.<var>
but this patch doesn't introduce any users yet.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocvsserver: Introduce new state variable 'method'
Frank Lichtenheld [Mon, 19 Mar 2007 15:55:57 +0000 (16:55 +0100)]
cvsserver: Introduce new state variable 'method'

$state->{method} contains the CVS access method used,
either 'ext' or 'pserver'

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoRemoved the .py extension from git-p4 as it's annoying to type every time.
Simon Hausmann [Thu, 22 Mar 2007 08:13:01 +0000 (09:13 +0100)]
Removed the .py extension from git-p4 as it's annoying to type every time.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agot6002: minor spelling fix.
Junio C Hamano [Thu, 22 Mar 2007 05:11:35 +0000 (22:11 -0700)]
t6002: minor spelling fix.

The test expects --bisect option can be configured with by setting
$_bisect_option.  So let's allow that uniformly.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agotree_entry_interesting(): allow it to say "everything is interesting"
Junio C Hamano [Thu, 22 Mar 2007 00:00:27 +0000 (17:00 -0700)]
tree_entry_interesting(): allow it to say "everything is interesting"

In addition to optimizing pathspecs that would never match,
which was done earlier, this optimizes pathspecs that would
always match (e.g. "arch/" while the traversal is already in
"arch/i386/" hierarchy).

This patch makes the worst case slightly more palatable, while
improving average case.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agotree-diff: avoid strncmp()
Junio C Hamano [Wed, 21 Mar 2007 19:34:46 +0000 (12:34 -0700)]
tree-diff: avoid strncmp()

If we already know that some of the pathspecs can match later
entries in the tree we are looking at, we do not have to do more
expensive strncmp() upfront before comparing the length of the
match pattern and the path, as a path longer than the match
pattern will not match it, and a path shorter than the match
pattern will match only if the path is a directory-component
wise prefix of the match pattern.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoTeach tree_entry_interesting() that the tree entries are sorted.
Junio C Hamano [Wed, 21 Mar 2007 16:51:47 +0000 (09:51 -0700)]
Teach tree_entry_interesting() that the tree entries are sorted.

When we are looking at a tree entry with pathspecs, if all the
pathspecs sort strictly earlier than the entry we are currently
looking at, there is no way later entries in the same tree would
match our pathspecs, because the entries are sorted.

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDon't show the submit template and the diff first in less but show it in $editor...
Simon Hausmann [Wed, 21 Mar 2007 20:04:12 +0000 (21:04 +0100)]
Don't show the submit template and the diff first in less but show it in $editor right away

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoSwitch over tree descriptors to contain a pre-parsed entry
Linus Torvalds [Wed, 21 Mar 2007 17:09:56 +0000 (10:09 -0700)]
Switch over tree descriptors to contain a pre-parsed entry

This makes the tree descriptor contain a "struct name_entry" as part of
it, and it gets filled in so that it always contains a valid entry. On
some benchmarks, it improves performance by up to 15%.

That makes tree entry "extract" trivial, and means that we only actually
need to decode each tree entry just once: we decode the first one when
we initialize the tree descriptor, and each subsequent one when doing
"update_tree_entry()".  In particular, this means that we don't need to
do strlen() both at extract time _and_ at update time.

Finally, it also allows more sharing of code (entry_extract(), that
wanted a "struct name_entry", just got totally trivial, along with the
"tree_entry()" function).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoInitialize tree descriptors with a helper function rather than by hand.
Linus Torvalds [Wed, 21 Mar 2007 17:08:25 +0000 (10:08 -0700)]
Initialize tree descriptors with a helper function rather than by hand.

This removes slightly more lines than it adds, but the real reason for
doing this is that future optimizations will require more setup of the
tree descriptor, and so we want to do it in one place.

Also renamed the "desc.buf" field to "desc.buffer" just to trigger
compiler errors for old-style manual initializations, making sure I
didn't miss anything.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoRemove "pathlen" from "struct name_entry"
Linus Torvalds [Wed, 21 Mar 2007 17:07:46 +0000 (10:07 -0700)]
Remove "pathlen" from "struct name_entry"

Since we have the "tree_entry_len()" helper function these days, and
don't need to do a full strlen(), there's no point in saving the path
length - it's just redundant information.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoMake it possible to invoke git-p4 from within subdirectories of a git working tree.
Simon Hausmann [Wed, 21 Mar 2007 12:05:30 +0000 (13:05 +0100)]
Make it possible to invoke git-p4 from within subdirectories of a git working tree.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years ago[PATCH] prefer "git COMMAND" over "git-COMMAND" in gitk
Brandon Casey [Mon, 19 Mar 2007 23:00:37 +0000 (18:00 -0500)]
[PATCH] prefer "git COMMAND" over "git-COMMAND" in gitk

Preferring git _space_ COMMAND over git _dash_ COMMAND allows the
user to have only git and gitk in their path. e.g. when git and gitk
are symbolic links in a personal bin directory to the real git and gitk.

Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years agoMade --apply-as-patch the default for git-p4 submit as it's significantly faster.
Simon Hausmann [Wed, 21 Mar 2007 10:01:18 +0000 (11:01 +0100)]
Made --apply-as-patch the default for git-p4 submit as it's significantly faster.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoFix support for deletions in git-p4 submit when using --apply-as-patch by filtering...
Simon Hausmann [Wed, 21 Mar 2007 09:57:54 +0000 (10:57 +0100)]
Fix support for deletions in git-p4 submit when using --apply-as-patch by filtering out deletions in the diff-tree output.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agofix typo in git-am manpage
Michael S. Tsirkin [Wed, 21 Mar 2007 08:37:36 +0000 (10:37 +0200)]
fix typo in git-am manpage

Fix typo in git-am manpage

Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoAdded experimental but super-fast --apply-as-patch option to git-p4 submit
Simon Hausmann [Wed, 21 Mar 2007 09:11:20 +0000 (10:11 +0100)]
Added experimental but super-fast --apply-as-patch option to git-p4 submit

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoDocumentation enhancements.
Simon Hausmann [Wed, 21 Mar 2007 07:27:33 +0000 (08:27 +0100)]
Documentation enhancements.

Signed-off-by: Simon Hausmann <simon@lst.de>
19 years agoblame: cmp_suspect is not "cmp" anymore.
Junio C Hamano [Wed, 21 Mar 2007 06:37:51 +0000 (23:37 -0700)]
blame: cmp_suspect is not "cmp" anymore.

The earlier round makes the function return "is it different"
and it does not return a value suitable for sorting anymore.  Reverse
the logic to return "are they the same suspect" instead, and rename
it to "same_suspect()".

Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agominor git-prune optimization
Nicolas Pitre [Wed, 21 Mar 2007 03:32:13 +0000 (23:32 -0400)]
minor git-prune optimization

Don't try to remove the containing directory for every pruned object but
try only once after the directory has been scanned instead.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoimprove checkout message when asking for same branch
Nicolas Pitre [Wed, 21 Mar 2007 02:26:47 +0000 (22:26 -0400)]
improve checkout message when asking for same branch

Change the feedback message if doing 'git checkout foo' when already on
branch "foo".

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoBe more careful about zlib return values
Linus Torvalds [Tue, 20 Mar 2007 18:38:34 +0000 (11:38 -0700)]
Be more careful about zlib return values

When creating a new object, we use "deflate(stream, Z_FINISH)" in a loop
until it no longer returns Z_OK, and then we do "deflateEnd()" to finish
up business.

That should all work, but the fact is, it's not how you're _supposed_ to
use the zlib return values properly:

 - deflate() should never return Z_OK in the first place, except if we
   need to increase the output buffer size (which we're not doing, and
   should never need to do, since we pre-allocated a buffer that is
   supposed to be able to hold the output in full). So the "while()" loop
   was incorrect: Z_OK doesn't actually mean "ok, continue", it means "ok,
   allocate more memory for me and continue"!

 - if we got an error return, we would consider it to be end-of-stream,
   but it could be some internal zlib error.  In short, we should check
   for Z_STREAM_END explicitly, since that's the only valid return value
   anyway for the Z_FINISH case.

 - we never checked deflateEnd() return codes at all.

Now, admittedly, none of these issues should ever happen, unless there is
some internal bug in zlib. So this patch should make zero difference, but
it seems to be the right thing to do.

We should probablybe anal and check the return value of "deflateInit()"
too!

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoDon't ever return corrupt objects from "parse_object()"
Linus Torvalds [Tue, 20 Mar 2007 17:05:20 +0000 (10:05 -0700)]
Don't ever return corrupt objects from "parse_object()"

Looking at the SHA1 validation code due to the corruption that Alexander
Litvinov is seeing under Cygwin, I notice that one of the most central
places where we read objects, we actually do end up verifying the SHA1 of
the result, but then we happily parse it anyway.

And using "printf" to write the error message means that it not only can
get lost, but will actually mess up stdout, and cause other strange and
hard-to-debug failures downstream.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoindex-pack: more validation checks and cleanups
Nicolas Pitre [Tue, 20 Mar 2007 21:07:48 +0000 (17:07 -0400)]
index-pack: more validation checks and cleanups

When appending objects to a pack, make sure the appended data is really
what we expect instead of simply loading potentially corrupted objects
and legitimating them by computing a SHA1 of that corrupt data.

With this the sha1_object() can lose its test_for_collision parameter
which is now redundent.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoindex-pack: use hash_sha1_file()
Nicolas Pitre [Tue, 20 Mar 2007 20:02:09 +0000 (16:02 -0400)]
index-pack: use hash_sha1_file()

Use hash_sha1_file() instead of duplicating code to compute object SHA1.
While at it make it accept a const pointer.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agodon't ever allow SHA1 collisions to exist by fetching a pack
Nicolas Pitre [Tue, 20 Mar 2007 19:32:35 +0000 (15:32 -0400)]
don't ever allow SHA1 collisions to exist by fetching a pack

Waaaaaaay back Git was considered to be secure as it never overwrote
an object it already had.  This was ensured by always unpacking the
packfile received over the network (both in fetch and receive-pack)
and our already existing logic to not create a loose object for an
object we already have.

Lately however we keep "large-ish" packfiles on both fetch and push
by running them through index-pack instead of unpack-objects.  This
would let an attacker perform a birthday attack.

How?  Assume the attacker knows a SHA-1 that has two different
data streams.  He knows the client is likely to have the "good"
one.  So he sends the "evil" variant to the other end as part of
a "large-ish" packfile.  The recipient keeps that packfile, and
indexes it.  Now since this is a birthday attack there is a SHA-1
collision; two objects exist in the repository with the same SHA-1.
They have *very* different data streams.  One of them is "evil".

Currently the poor recipient cannot tell the two objects apart,
short of by examining the timestamp of the packfiles.  But lets
say the recipient repacks before he realizes he's been attacked.
We may wind up packing the "evil" version of the object, and deleting
the "good" one.  This is made *even more likely* by Junio's recent
rearrange_packed_git patch (b867092f).

It is extremely unlikely for a SHA1 collisions to occur, but if it
ever happens with a remote (hence untrusted) object we simply must
not let the fetch succeed.

Normally received packs should not contain objects we already have.
But when they do we must ensure duplicated objects with the same SHA1
actually contain the same data.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoStart of the git-p4 documentation.
Simon Hausmann [Tue, 20 Mar 2007 21:41:00 +0000 (22:41 +0100)]
Start of the git-p4 documentation.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoRemoved p4-fast-export and p4-git-sync as they've been integrated into git-p4 now.
Simon Hausmann [Tue, 20 Mar 2007 21:09:27 +0000 (22:09 +0100)]
Removed p4-fast-export and p4-git-sync as they've been integrated into git-p4 now.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoFixed the initial version import by getting the file index correct by correctly skipp...
Simon Hausmann [Tue, 20 Mar 2007 20:13:49 +0000 (21:13 +0100)]
Fixed the initial version import by getting the file index correct by correctly skipping deleted files.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoAdded missing "self"s to make the script evaluate correctly.
Simon Hausmann [Tue, 20 Mar 2007 19:59:30 +0000 (20:59 +0100)]
Added missing "self"s to make the script evaluate correctly.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoCompletely untested "merge" of p4-fast-export.py into git-p4.py
Simon Hausmann [Tue, 20 Mar 2007 19:54:23 +0000 (20:54 +0100)]
Completely untested "merge" of p4-fast-export.py into git-p4.py

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agosync-to-perforce is now called submit and fixed the gitdir check a little bit
Simon Hausmann [Tue, 20 Mar 2007 17:32:47 +0000 (18:32 +0100)]
sync-to-perforce is now called submit and fixed the gitdir check a little bit

Signed-off-by: Simon Hausmann <hausmann@kde.org>
19 years agoTeach git-remote to list pushed branches.
Johannes Sixt [Sun, 18 Mar 2007 20:34:46 +0000 (21:34 +0100)]
Teach git-remote to list pushed branches.

The configured refspecs are printed almost verbatim, i.e. both the local
and the remote branch name separated by a colon are printed; only the
prefix 'refs/heads/' is removed, like this:

  Local branch(es) pushed with 'git push'
    master refs/tags/*:refs/tags/* next:next

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agogit-fetch: Fix single_force in append_fetch_head
Santi Béjar [Sun, 18 Mar 2007 23:16:23 +0000 (00:16 +0100)]
git-fetch: Fix single_force in append_fetch_head

This fixes the single force (+) when fetched with fetch_per_ref.

Also use $LF as separator because IFS is $LF.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoMerge git://git2.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Tue, 20 Mar 2007 06:47:22 +0000 (23:47 -0700)]
Merge git://git2.kernel.org/pub/scm/gitk/gitk

* git://git2.kernel.org/pub/scm/gitk/gitk:
  [PATCH] gitk: bind <F5> key to Update (reread commits)

19 years agomake git clone -q suppress the noise with http fetch
Chris Wright [Tue, 20 Mar 2007 02:18:18 +0000 (19:18 -0700)]
make git clone -q suppress the noise with http fetch

We already have -q in git clone.  So for those who care to suppress
the noise during an http based clone, make -q actually do a quiet
http fetch.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Cc: Fernando Herrera <fherrera@onirica.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoFix loose object uncompression check.
Linus Torvalds [Tue, 20 Mar 2007 05:49:53 +0000 (22:49 -0700)]
Fix loose object uncompression check.

The thing is, if the output buffer is empty, we should *still* actually
use the zlib routines to *unpack* that empty output buffer.

But we had a test that said "only unpack if we still expect more output".

So we wouldn't use up all the zlib stream, because we felt that we didn't
need it, because we already had all the bytes we wanted. And it was
"true": we did have all the output data. We just needed to also eat all
the input data!

We've had this bug before - thinking that we don't need to inflate()
anything because we already had it all..

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agocontrib/continuous: a continuous integration build manager
Shawn O. Pearce [Tue, 20 Mar 2007 04:33:41 +0000 (00:33 -0400)]
contrib/continuous: a continuous integration build manager

This is a simple but powerful continuous integration build system
for Git.  It works by receiving push events from repositories
through the post-receive hook, aggregates them on a per-branch
basis into a first-come-first-serve build queue, and lets a
background build daemon perform builds one at a time.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoProvide some technical documentation for shallow clones
Johannes Schindelin [Tue, 20 Mar 2007 02:41:11 +0000 (03:41 +0100)]
Provide some technical documentation for shallow clones

There has not been any work on the shallow stuff lately, so it is hard
to find out what it does, and how. This document describes the ideas
as well as the current problems, and can serve as a starting point for
shallow people.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoAdd a HOWTO for setting up a standalone git daemon
Johannes Schindelin [Tue, 20 Mar 2007 02:29:56 +0000 (03:29 +0100)]
Add a HOWTO for setting up a standalone git daemon

Setting up a git-daemon came up the other day on IRC, and it is slightly
non trivial for the uninitiated.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoxdiff/xutils.c(xdl_hash_record): factor out whitespace handling
Johannes Schindelin [Tue, 20 Mar 2007 03:05:10 +0000 (04:05 +0100)]
xdiff/xutils.c(xdl_hash_record): factor out whitespace handling

Since in at least one use case, xdl_hash_record() takes over 15% of the
CPU time, it makes sense to even micro-optimize it. For many cases, no
whitespace special handling is needed, and in these cases we should not
even bother to check for whitespace in _every_ iteration of the loop.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years agoblame: micro-optimize cmp_suspect()
Junio C Hamano [Tue, 20 Mar 2007 05:17:10 +0000 (22:17 -0700)]
blame: micro-optimize cmp_suspect()

The commit structures are guaranteed their uniqueness by the object
layer, so we can check their address and see if they are the same
without going down to the object sha1 level.

Signed-off-by: Junio C Hamano <junkio@cox.net>