Code

git.git
16 years agoAdd tests for the last two fixes.
Junio C Hamano [Sat, 26 May 2007 07:26:20 +0000 (00:26 -0700)]
Add tests for the last two fixes.

This updates t4014 to check the two fixes for git-am and git-commit
we observed with "echo" that does backslash interpolation by default
without being asked with -e option.

Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agogit-commit: use printf '%s\n' instead of echo on user-supplied strings
Junio C Hamano [Sat, 26 May 2007 05:00:54 +0000 (22:00 -0700)]
git-commit: use printf '%s\n' instead of echo on user-supplied strings

This fixes the same issue git-am had, which was fixed by Jeff
King in the previous commit.  Cleverly enough, this commit's log
message is a good test case at the same time.

Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agogit-am: use printf instead of echo on user-supplied strings
Jeff King [Sat, 26 May 2007 03:42:36 +0000 (23:42 -0400)]
git-am: use printf instead of echo on user-supplied strings

Under some implementations of echo (such as that provided by
dash), backslash escapes are recognized without any other
options. This means that echo-ing user-supplied strings may
cause any backslash sequences in them to be converted. Using
printf resolves the ambiguity.

This bug can be seen when using git-am to apply a patch
whose subject contains the character sequence "\n"; the
characters are converted to a literal newline. Noticed by
Szekeres Istvan.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoDocumentation: Add definition of "evil merge" to GIT Glossary
Jakub Narebski [Fri, 25 May 2007 22:37:39 +0000 (00:37 +0200)]
Documentation: Add definition of "evil merge" to GIT Glossary

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoReplace the last 'dircache's by 'index'
Jakub Narebski [Fri, 25 May 2007 22:37:40 +0000 (00:37 +0200)]
Replace the last 'dircache's by 'index'

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoDocumentation: Clean up links in GIT Glossary
Jakub Narebski [Fri, 25 May 2007 22:37:38 +0000 (00:37 +0200)]
Documentation: Clean up links in GIT Glossary

Ensure that the same link is not repeated in single glossary entry,
and that there is no self-link i.e. link to current entry.

Add links to other definitions in git glossary.

Remove inappropriate (nonsense) links, or change link to link to
correct definition (to correct term).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoMerge branch 'master' of git://repo.or.cz/git/fastimport into maint
Junio C Hamano [Fri, 25 May 2007 04:34:59 +0000 (21:34 -0700)]
Merge branch 'master' of git://repo.or.cz/git/fastimport into maint

* 'master' of git://repo.or.cz/git/fastimport:
  Update bash completion for git-config options
  Teach bash completion about recent log long options
  Teach bash completion about 'git remote update'
  Update bash completion header documentation
  Remove a duplicate --not option in bash completion
  Teach bash completion about git-shortlog
  Hide the plumbing diff-{files,index,tree} from bash completion
  Update bash completion to ignore some more plumbing commands

16 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Fri, 25 May 2007 02:01:50 +0000 (19:01 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  fix memory leak in parse_object when check_sha1_signature fails
  name-rev: tolerate clock skew in committer dates

16 years agofix memory leak in parse_object when check_sha1_signature fails
Carlos Rica [Fri, 25 May 2007 01:46:22 +0000 (03:46 +0200)]
fix memory leak in parse_object when check_sha1_signature fails

When check_sha1_signature fails, program is not terminated:
it prints an error message and returns NULL, so the
buffer returned by read_sha1_file should be freed before.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoname-rev: tolerate clock skew in committer dates
Junio C Hamano [Thu, 24 May 2007 19:20:42 +0000 (12:20 -0700)]
name-rev: tolerate clock skew in committer dates

In git.git repository, "git-name-rev v1.3.0~158" cannot name the
rev, while adjacent revs can be named.

This was because it gives up traversal from the tips of existing
refs as soon as it sees a commit that has older commit timestamp
than what is being named.  This is usually a good heuristics,
but v1.3.0~158 has a slightly older commit timestamp than
v1.3.0~157 (i.e. it's child), as these two were made in a
separate repostiory (in fact, in a different continent).

This adds a hardcoded slop value (1 day) to the cut-off
heuristics to work this kind of problem around.  The current
algorithm essentially runs around from the available tips down
to ancient commits and names every single rev available that are
newer than cut-off date, so a single day slop would not add that
much overhead in repositories with long enough history where the
performance of name-rev matters.

I think the algorithm could be made a bit smarter by deepening
the graph on demand as a new commit is asked to be named (this
would require rewriting of name_rev() function not to recurse
itself but use a traversal list like revision.c traverser does),
but that would be a separate issue.

Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoCorrect key bindings to Control-<foo>
Shawn O. Pearce [Thu, 24 May 2007 06:33:13 +0000 (02:33 -0400)]
Correct key bindings to Control-<foo>

Alberto Bertogli reported on #git that git-gui was exiting with
alt-q, while gitk on the same system was exiting with ctrl-q.
That was not what I wanted.  I really wanted M1B to be bound to
the Control key on most non-Mac OS X platforms, but according to
Sam Vilain M1 on most systems means alt.  Since gitk always does
control, I'm doing the same thing for all non-Mac OS X systems.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUpdate bash completion for git-config options
Shawn O. Pearce [Thu, 24 May 2007 06:07:45 +0000 (02:07 -0400)]
Update bash completion for git-config options

A few new configuration options grew out of the woodwork during the
1.5.2 series.  Most of these are pretty easy to support a completion
of, so we do so.

I wanted to also add completion support for the <driver> part of
merge.<driver>.name but to do that we have to look at all of the
.gitattributes files and guess what the unique set of <driver>
strings would be.  Since this appears to be non-trivial I'm punting
on it at this time.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach bash completion about recent log long options
Shawn O. Pearce [Thu, 24 May 2007 05:51:30 +0000 (01:51 -0400)]
Teach bash completion about recent log long options

(Somewhat) recently git-log learned about --reverse (to show commits
in the opposite order) and a looong time ago I think it learned
about --raw (to show the raw diff, rather than a unified diff).
These are both useful options, so we should make them easy for the
user to complete.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach bash completion about 'git remote update'
Shawn O. Pearce [Thu, 24 May 2007 05:46:49 +0000 (01:46 -0400)]
Teach bash completion about 'git remote update'

Recently the git-remote command grew an update subcommand, which
can be used to execute git-fetch across multiple repositories
in a single step.  These can be configured with the 'remotes.*'
configuration options, so we can offer completion for any name that
matches and appears to be useful to git-remote update.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint' of git://repo.or.cz/git/fastimport into maint
Junio C Hamano [Thu, 24 May 2007 05:37:03 +0000 (22:37 -0700)]
Merge branch 'maint' of git://repo.or.cz/git/fastimport into maint

* 'maint' of git://repo.or.cz/git/fastimport:
  Fix possible coredump with fast-import --import-marks
  Refactor fast-import branch creation from existing commit
  fast-import: Fix crash when referencing already existing objects
  fast-import: Fix uninitialized variable

16 years agoUpdate bash completion header documentation
Shawn O. Pearce [Thu, 24 May 2007 05:36:46 +0000 (01:36 -0400)]
Update bash completion header documentation

 1) Added a note about supporting the long options for most commands,
    as we have been doing so for quite some time.

 2) Include a notice that these routines are covered by the GPL,
    as that may not be obvious, even though they are distributed
    as part of the core Git distribution.

 3) Added a short section on how to send patches to the routines,
    and to whom they should get sent to.  Currently that is me,
    as I am the active maintainer.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Thu, 24 May 2007 05:34:11 +0000 (22:34 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  Documentation: fix git-config.xml generation

16 years agoRemove a duplicate --not option in bash completion
Shawn O. Pearce [Thu, 24 May 2007 05:26:58 +0000 (01:26 -0400)]
Remove a duplicate --not option in bash completion

This was just me being silly; I put the --not option into the
completion list twice.  There's no duplicates shown in the shell
as the shell removes them before showing them to the user.  But we
really don't need the duplicates in the source script either.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach bash completion about git-shortlog
Shawn O. Pearce [Thu, 24 May 2007 05:25:34 +0000 (01:25 -0400)]
Teach bash completion about git-shortlog

We've had completion for git-log for quite some time, but just
today I noticed we don't have it for the new builtin shortlog
that runs git-log internally.  This is indeed a handy thing to
have completion for, especially when your branch names are of
the Very-Very-Long-and-Hard/To-Type/Variety/That-Some-Use.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoHide the plumbing diff-{files,index,tree} from bash completion
Shawn O. Pearce [Thu, 24 May 2007 05:01:02 +0000 (01:01 -0400)]
Hide the plumbing diff-{files,index,tree} from bash completion

The diff-* programs are meant to be plumbing for the diff frontend;
most end users aren't invoking these commands directly.  Consequently
we should avoid showing them as possible completions.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoFix possible coredump with fast-import --import-marks
Shawn O. Pearce [Thu, 24 May 2007 04:32:31 +0000 (00:32 -0400)]
Fix possible coredump with fast-import --import-marks

When e8438420bb7d368bec3647b90c557b9931582267 allowed us to reload
the marks table on subsequent runs of fast-import we really broke
things, as we set pack_id to MAX_PACK_ID for any objects we imported
into the marks table.  Creating a branch from that mark should fail
as we attempt to read the object through a non-existant packed_git
pointer.  Instead we have to use the normal Git object system to
locate the older commit, as we ourselves do not have a reference
to the packed_git it resides in.

This bug only occurred because t9300 was not complete enough.
When we added the --import-marks feature we didn't actually test
its implementation enough to verify the function worked as intended.
I have corrected that, and included the changes as part of this fix.
Prior versions of fast-import fail the new test(s); this commit
allows them to pass.

Credit for this bug find goes to Simon Hausmann <simon@lst.de> as
he recently identified a similiar bug in the tree lazy-loading path.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoRefactor fast-import branch creation from existing commit
Shawn O. Pearce [Thu, 24 May 2007 04:05:19 +0000 (00:05 -0400)]
Refactor fast-import branch creation from existing commit

To resolve a corner case uncovered by Simon Hausmann I need to
reuse the logic for the SHA-1 expression version of the 'from '
command within the mark version of the 'from ' command.  This change
doesn't alter any functionality, but is merely breaking the common
code out to a function that I can reuse.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofast-import: Fix crash when referencing already existing objects
Simon Hausmann [Wed, 23 May 2007 21:01:49 +0000 (23:01 +0200)]
fast-import: Fix crash when referencing already existing objects

Commit a5c1780a0355a71b9fb70f1f1977ce726ee5b8d8 sets the pack_id of existing
objects to MAX_PACK_ID. When the same object is referenced later again it is
found in the local object hash. With such a pack_id fast-import should not try
to locate that object in the newly created pack(s).

Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofast-import: Fix uninitialized variable
Simon Hausmann [Wed, 23 May 2007 21:00:22 +0000 (23:00 +0200)]
fast-import: Fix uninitialized variable

Fix uninitialized last_object->no_free variable that is accessed in
store_object.

Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoDocumentation: fix git-config.xml generation
James Bowes [Wed, 23 May 2007 22:16:12 +0000 (18:16 -0400)]
Documentation: fix git-config.xml generation

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoUse git-for-each-ref to check whether the origin branch exists.
Stephan Springl [Wed, 23 May 2007 11:13:21 +0000 (12:13 +0100)]
Use git-for-each-ref to check whether the origin branch exists.

This works in repositories that have their refs packed by
"git-pack-refs --all --prune" whereas testing the file
$git_dir/refs/heads/$opt_o does not.

Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Wed, 23 May 2007 07:15:35 +0000 (00:15 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  Document branch.autosetupmerge.

16 years agoDocument branch.autosetupmerge.
Paolo Bonzini [Wed, 23 May 2007 05:07:54 +0000 (07:07 +0200)]
Document branch.autosetupmerge.

This patch documents the branch.autosetupmerge config option, added
by commit 0746d19a.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agogit-gui: Tighten internal pattern match for lib/ directory
Shawn O. Pearce [Tue, 22 May 2007 07:22:51 +0000 (03:22 -0400)]
git-gui: Tighten internal pattern match for lib/ directory

Our GITGUI_LIBDIR macro was testing only for @@ at the start of
the path, assuming nobody would ever find that to be a reasonable
prefix for a directory to install our library into.  That is most
likely a valid assumption, but its even more unlikely they would
have the start be @@GITGUI_ and the end be @@.  Note that we
cannot use the full string here because that would get expanded
by the sed replacement in our Makefile.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-cvsserver: fix disabling service via per-method config
Junio C Hamano [Mon, 21 May 2007 00:57:27 +0000 (17:57 -0700)]
git-cvsserver: fix disabling service via per-method config

When the per-method enable logic disables the access, we should
not even look at the global one.

 git-cvsserver.perl |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Tue, 22 May 2007 01:42:35 +0000 (18:42 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  git-status: respect core.excludesFile
  SubmittingPatches: mention older C compiler compatibility
  git-daemon: don't ignore pid-file write failure

16 years agogit-status: respect core.excludesFile
Johannes Schindelin [Tue, 22 May 2007 00:12:17 +0000 (01:12 +0100)]
git-status: respect core.excludesFile

git-add reads this variable, and honours the contents of that file if that
exists. Match this behaviour in git-status, too.

Noticed by Evan Carroll on IRC.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoSubmittingPatches: mention older C compiler compatibility
Johannes Schindelin [Mon, 21 May 2007 12:48:49 +0000 (13:48 +0100)]
SubmittingPatches: mention older C compiler compatibility

We do not appreciate C99 initializers, declarations after statements,
or "0" instead of "NULL".

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agogit-daemon: don't ignore pid-file write failure
Jim Meyering [Mon, 21 May 2007 07:58:01 +0000 (09:58 +0200)]
git-daemon: don't ignore pid-file write failure

Note: since the consequence of failure is to call die,
I don't bother to close "f".

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoUpdate bash completion to ignore some more plumbing commands
Jonas Fonseca [Sat, 19 May 2007 21:35:21 +0000 (23:35 +0200)]
Update bash completion to ignore some more plumbing commands

[sp: Modified Jonas' original patch to keep checkout-index
 as a a valid completion.]

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Mon, 21 May 2007 02:57:00 +0000 (19:57 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  annotate: make it work from subdirectories.
  git-config: Correct asciidoc documentation for --int/--bool
  t1300: Add tests for git-config --bool --get
  unpack-trees.c: verify_uptodate: remove dead code
  Use PATH_MAX instead of TEMPFILE_PATH_LEN
  branch: fix segfault when resolving an invalid HEAD

16 years agoannotate: make it work from subdirectories.
Junio C Hamano [Mon, 21 May 2007 02:56:28 +0000 (19:56 -0700)]
annotate: make it work from subdirectories.

Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agogit-config: Correct asciidoc documentation for --int/--bool
Frank Lichtenheld [Sun, 20 May 2007 22:12:58 +0000 (00:12 +0200)]
git-config: Correct asciidoc documentation for --int/--bool

The asciidoc documentation seemed to indicate that type specifiers
are honoured on writing operations which they aren't. Make this
more clear.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agot1300: Add tests for git-config --bool --get
Frank Lichtenheld [Sun, 20 May 2007 22:12:57 +0000 (00:12 +0200)]
t1300: Add tests for git-config --bool --get

Noticed that there were only tests for --int, but not
for --bool. Add some.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agounpack-trees.c: verify_uptodate: remove dead code
Sven Verdoolaege [Sun, 20 May 2007 17:26:37 +0000 (19:26 +0200)]
unpack-trees.c: verify_uptodate: remove dead code

This code was killed by commit fcc387db9bc453dc7e07a262873481af2ee9e5c8.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agoUse PATH_MAX instead of TEMPFILE_PATH_LEN
Fernando J. Pereda [Sun, 20 May 2007 13:35:46 +0000 (15:35 +0200)]
Use PATH_MAX instead of TEMPFILE_PATH_LEN

Signed-off-by: Fernando J. Pereda <ferdy@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
16 years agobranch: fix segfault when resolving an invalid HEAD
Jonas Fonseca [Sun, 20 May 2007 12:19:17 +0000 (14:19 +0200)]
branch: fix segfault when resolving an invalid HEAD

Caused by return value of resolve_ref being passed directly
to xstrdup whereby the sanity checking was never reached.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoGIT 1.5.2 v1.5.2
Junio C Hamano [Sun, 20 May 2007 07:30:39 +0000 (00:30 -0700)]
GIT 1.5.2

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-cvsserver: exit with 1 upon "I HATE YOU"
Junio C Hamano [Sun, 20 May 2007 00:53:45 +0000 (17:53 -0700)]
git-cvsserver: exit with 1 upon "I HATE YOU"

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' to synchronize with 1.5.1.6
Junio C Hamano [Sun, 20 May 2007 07:19:30 +0000 (00:19 -0700)]
Merge branch 'maint' to synchronize with 1.5.1.6

* maint:
  GIT 1.5.1.6
  git-svn: don't minimize-url when doing an init that tracks multiple paths
  git-svn: avoid crashing svnserve when creating new directories
  user-manual: Add section on ignoring files
  user-manual: finding commits referencing given file content
  user-manual: discourage shared repository
  tutorial: revise index introduction
  tutorials: add user-manual links

Conflicts:

GIT-VERSION-GEN
RelNotes

17 years agoGIT 1.5.1.6 v1.5.1.6
Junio C Hamano [Sun, 20 May 2007 01:18:24 +0000 (18:18 -0700)]
GIT 1.5.1.6

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Sun, 20 May 2007 06:25:59 +0000 (23:25 -0700)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: Add section on ignoring files
  user-manual: finding commits referencing given file content
  user-manual: discourage shared repository
  tutorial: revise index introduction
  tutorials: add user-manual links

17 years agogit-svn: don't minimize-url when doing an init that tracks multiple paths
Eric Wong [Sat, 19 May 2007 10:59:02 +0000 (03:59 -0700)]
git-svn: don't minimize-url when doing an init that tracks multiple paths

I didn't have a chance to test the off-by-default minimize-url
stuff enough before, but it's quite broken for people passing
the --trunk/-T, --tags/-t, --branches/-b switches to "init" or
"clone" commands.

Additionally, follow-parent functionality seems broken when we're
not connected to the root of the repository.

Default behavior for "traditional" git-svn users who only track
one directory (without needing follow-parent) should be
reasonable, as those users started using things before
minimize-url functionality existed.

Behavior for users more used to the git-svnimport-like command
line will also benefit from a more-flexible command-line than
svnimport given the assumption they're working with
non-restrictive read permissions on the repository.

I hope to properly fix these bugs when I get a chance to in the
next week or so, but I would like to get this stopgap measure of
reverting to the old behavior as soon as possible.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-svn: avoid crashing svnserve when creating new directories
Eric Wong [Sat, 19 May 2007 09:58:37 +0000 (02:58 -0700)]
git-svn: avoid crashing svnserve when creating new directories

When sorting directory names by depth (slash ("/") count) and
closing the deepest directories first (as the protocol
requires), we failed to put the root baton (with an empty string
as its key "") after top-level directories (which did not have
any slashes).

This resulted in svnserve being in a situation it couldn't
handle and caused a segmentation fault on the remote server.

This bug did not affect users of DAV and filesystem repositories.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Confirmed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: Add section on ignoring files
Johan Herland [Wed, 16 May 2007 00:31:40 +0000 (02:31 +0200)]
user-manual: Add section on ignoring files

The todo list at the end of the user manual says that something must be
said about .gitignore. Also, there seems to be a lack of documentation
on how to choose between the various types of ignore files (.gitignore
vs. .git/info/exclude, etc.).

This patch adds a section on ignoring files which try to introduce how
to tell git about ignored files, and how the different strategies
complement eachother.

The syntax of exclude patterns is explained in a simplified manner, with
a reference to git-ls-files(1) which already contains a more thorough
explanation.

Signed-off-by: Johan Herland <johan@herland.net>
17 years agouser-manual: finding commits referencing given file content
J. Bruce Fields [Sat, 19 May 2007 04:37:25 +0000 (00:37 -0400)]
user-manual: finding commits referencing given file content

Another amusing git exploration example brought up in irc.  (Credit to
aeruder for the complete solution.)

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: discourage shared repository
J. Bruce Fields [Tue, 15 May 2007 04:30:58 +0000 (00:30 -0400)]
user-manual: discourage shared repository

I don't really want to look like we're encouraging the shared repository
thing.  Take down some of the argument for using purely
single-developer-owned repositories and collaborating using patches and
pulls instead.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agotutorial: revise index introduction
J. Bruce Fields [Fri, 18 May 2007 04:51:42 +0000 (00:51 -0400)]
tutorial: revise index introduction

The embarassing history of this tutorial is that I started it without
really understanding the index well, so I avoided mentioning it.

And we all got the idea that "index" was a word to avoid using around
newbies, but it was reluctantly mentioned that *something* had to be
said.  The result is a little awkward: the discussion of the index never
actually uses that word, and isn't well-integrated into the surrounding
material.

Let's just go ahead and use the word "index" from the very start, and
try to demonstrate its use with a minimum of lecturing.

Also, remove discussion of using git-commit with explicit filenames.
We're already a bit slow here to get people to their first commit, and
I'm not convinced this is really so important.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agotutorials: add user-manual links
J. Bruce Fields [Fri, 18 May 2007 03:56:08 +0000 (23:56 -0400)]
tutorials: add user-manual links

Mention the user manual, especially as an alternative introduction for
user's mainly interested in read-only operations.

And fix a typo while we're there.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoMerge branch 'maint'
Junio C Hamano [Sat, 19 May 2007 04:50:56 +0000 (21:50 -0700)]
Merge branch 'maint'

* maint:
  Documentation: Reformatted SYNOPSIS for several commands
  Documentation: Added [verse] to SYNOPSIS where necessary

17 years agoDocumentation: Reformatted SYNOPSIS for several commands
Matthias Kestenholz [Fri, 18 May 2007 13:39:34 +0000 (15:39 +0200)]
Documentation: Reformatted SYNOPSIS for several commands

Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: Added [verse] to SYNOPSIS where necessary
Matthias Kestenholz [Fri, 18 May 2007 13:39:33 +0000 (15:39 +0200)]
Documentation: Added [verse] to SYNOPSIS where necessary

Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/git.txt: Update links to older documentation pages.
Junio C Hamano [Sat, 19 May 2007 04:43:13 +0000 (21:43 -0700)]
Documentation/git.txt: Update links to older documentation pages.

It's starting to take too much space at the beginning of the
main documentation page.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Fix "Use of uninitialized value" warning in git_feed
Jakub Narebski [Sat, 19 May 2007 00:47:51 +0000 (02:47 +0200)]
gitweb: Fix "Use of uninitialized value" warning in git_feed

Initial (root) commit has no parents, and $co{'parent'} is
undefined. Use '--root' for initial commit.

This fixes "Use of uninitialized value in open at gitweb/gitweb.perl
line 4925." warning.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'sp/cvsexport'
Junio C Hamano [Sat, 19 May 2007 00:28:50 +0000 (17:28 -0700)]
Merge branch 'sp/cvsexport'

* sp/cvsexport:
  Optimized cvsexportcommit: calling 'cvs status' once instead of once per touched file.

17 years agoAdd link to 1.5.1.5 release notes.
Junio C Hamano [Sat, 19 May 2007 00:28:24 +0000 (17:28 -0700)]
Add link to 1.5.1.5 release notes.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge 1.5.1.5 in
Junio C Hamano [Sat, 19 May 2007 00:27:08 +0000 (17:27 -0700)]
Merge 1.5.1.5 in

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoGIT v1.5.1.5 v1.5.1.5
Junio C Hamano [Sat, 19 May 2007 00:21:31 +0000 (17:21 -0700)]
GIT v1.5.1.5

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Sat, 19 May 2007 00:13:47 +0000 (17:13 -0700)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: reorganize public git repo discussion
  user-manual: listing commits reachable from some refs not others
  user-manual: introduce git
  user-manual: add a "counting commits" example
  user-manual: move howto/using-topic-branches into manual
  user-manual: move howto/make-dist.txt into user manual
  Documentation: remove howto's now incorporated into manual
  user-manual: move quick-start to an appendix
  glossary: expand and clarify some definitions, prune cross-references
  user-manual: revise birdseye-view chapter
  Add a birdview-on-the-source-code section to the user manual

17 years agogitweb: Remove redundant $searchtype setup
Petr Baudis [Fri, 18 May 2007 23:12:32 +0000 (01:12 +0200)]
gitweb: Remove redundant $searchtype setup

Sorry, this was inadverently introduced by my grep search patch. It causes
annoying "redefined" warnings.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: git-rev-list's "patterns"
Petr Baudis [Fri, 18 May 2007 23:21:53 +0000 (01:21 +0200)]
Documentation: git-rev-list's "patterns"

git-rev-list(1) talks about patterns as values for the
--grep, --committed etc. parameters, without going into detail.
This patch mentions that these patterns are actually regexps.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix crlf attribute handling to match documentation
Andy Parkins [Fri, 18 May 2007 12:33:32 +0000 (13:33 +0100)]
Fix crlf attribute handling to match documentation

gitattributes.txt says, of the crlf attribute:

 Set::
    Setting the `crlf` attribute on a path is meant to mark
    the path as a "text" file.  'core.autocrlf' conversion
    takes place without guessing the content type by
    inspection.

That is to say that the crlf attribute does not force the file to have
CRLF line endings, instead it removes the autocrlf guesswork and forces
the file to be treated as text.  Then, whatever line ending is defined
by the autocrlf setting is applied.

However, that is not what convert.c was doing.  The conversion to CRLF
was being skipped in crlf_to_worktree() when the following condition was
true:

 action == CRLF_GUESS && auto_crlf <= 0

That is to say conversion took place when not in guess mode (crlf attribute
not specified) or core.autocrlf set to true.  This was wrong.  It meant
that the crlf attribute being on for a given file _forced_ CRLF
conversion, when actually it should force the file to be treated as
text, and converted accordingly.  The real test should simply be

 auto_crlf <= 0

That is to say, if core.autocrlf is falsei (or input), conversion from
LF to CRLF is never done.  When core.autocrlf is true, conversion from
LF to CRLF is done only when in CRLF_GUESS (and the guess is "text"), or
CRLF_TEXT mode.

Similarly for crlf_to_worktree(), if core.autocrlf is false, no conversion
should _ever_ take place.  In reality it was only not taking place if
core.autocrlf was false _and_ the crlf attribute was unspecified.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-archive: convert archive entries like checkouts do
René Scharfe [Fri, 18 May 2007 22:09:41 +0000 (00:09 +0200)]
git-archive: convert archive entries like checkouts do

As noted by Johan Herland, git-archive is a kind of checkout and needs
to apply any checkout filters that might be configured.

This patch adds the convenience function convert_sha1_file which returns
a buffer containing the object's contents, after converting, if necessary
(i.e. it's a combination of read_sha1_file and convert_to_working_tree).
Direct calls to read_sha1_file in git-archive are then replaced by calls
to convert_sha1_file.

Since convert_sha1_file expects its path argument to be NUL-terminated --
a convention it inherits from convert_to_working_tree -- the patch also
changes the path handling in archive-tar.c to always NUL-terminate the
string.  It used to solely rely on the len field of struct strbuf before.

archive-zip.c already NUL-terminates the path and thus needs no such
change.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: reorganize public git repo discussion
J. Bruce Fields [Tue, 15 May 2007 04:00:29 +0000 (00:00 -0400)]
user-manual: reorganize public git repo discussion

Helping a couple people set up public repos recently, I wanted to point
them at this piece of the user manual, but found it wasn't as helpful as
it could be:

- It starts with a big explanation of why you'd want a public
  repository, not necessary in their case since they already knew
  why they wanted that.  So, separate that out.
- It skimps on some of the git-daemon details, and puts the http
  export information first.  Fix that.

Also group all the public repo subsections into a single section, and do
some miscellaneous related editing.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: listing commits reachable from some refs not others
J. Bruce Fields [Mon, 14 May 2007 02:58:06 +0000 (22:58 -0400)]
user-manual: listing commits reachable from some refs not others

This is just an amusing example raised by someone in irc.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: introduce git
J. Bruce Fields [Sun, 13 May 2007 06:23:11 +0000 (02:23 -0400)]
user-manual: introduce git

Well, we should say at least something about what git is.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: add a "counting commits" example
J. Bruce Fields [Sun, 13 May 2007 06:14:45 +0000 (02:14 -0400)]
user-manual: add a "counting commits" example

This is partly just an excuse to mention --pretty= and rev-list.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: move howto/using-topic-branches into manual
J. Bruce Fields [Sun, 13 May 2007 05:48:47 +0000 (01:48 -0400)]
user-manual: move howto/using-topic-branches into manual

Move howto/using-topic-branches into the user manual as an example for
the "sharing development" chapter.  While we're at it, remove some
discussion that's covered in earlier chapters, modernize somewhat (use
separate-heads setup, remotes, replace "whatchanged" by "log", etc.),
and replace syntax we'd need to explain by syntax we've already covered
(e.g. old..new instead of new ^old).

The result may not really describe what Tony Luck does any more.... Hope
that's not annoying.

Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: move howto/make-dist.txt into user manual
J. Bruce Fields [Sun, 13 May 2007 04:14:40 +0000 (00:14 -0400)]
user-manual: move howto/make-dist.txt into user manual

There seems to be a perception that the howto's are bit-rotting a
little.  The manual might be a more visible location for some of them,
and make-dist.txt seems like a good candidate to include as an example
in the manual.

For now, incorporate much of it verbatim.  Later we may want to update
the example a bit.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoDocumentation: remove howto's now incorporated into manual
J. Bruce Fields [Sun, 13 May 2007 03:52:24 +0000 (23:52 -0400)]
Documentation: remove howto's now incorporated into manual

These two howto's have both been copied into the manual.  I'd rather not
maintain both versions if possible, and I think the user-manual will be
more visible than the howto directory.  (Though I wouldn't mind some
duplication if people really like having them here.)

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: move quick-start to an appendix
J. Bruce Fields [Sun, 13 May 2007 02:55:40 +0000 (22:55 -0400)]
user-manual: move quick-start to an appendix

The quick start interrupts the flow of the manual a bit.  Move it to
"appendix A" but add a reference to it in the preface.  Also rename the
todo chapter to "appendix B", and revise the preface a little.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoglossary: expand and clarify some definitions, prune cross-references
J. Bruce Fields [Sun, 13 May 2007 02:17:03 +0000 (22:17 -0400)]
glossary: expand and clarify some definitions, prune cross-references

Revise and expand some of the definitions in the glossary, based in part
on a recent thread started by a user looking for help with some of the
jargon.  I've borrowed some of the language from Linus's email on that
thread.  (I'm assuming standing permission to plagiarize Linus's
email....)

Also start making a few changes to mitigate the appearance of
"circularity" mentioned in that thread:
- feel free to use somewhat longer definitions and to explain
  some things more than once instead of relying purely on
  cross-references
- don't use cross-references when they're redundant: eliminate
  self-references and repeated references to the same entry.

Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: revise birdseye-view chapter
J. Bruce Fields [Sat, 12 May 2007 23:48:31 +0000 (19:48 -0400)]
user-manual: revise birdseye-view chapter

Some revisions suggested by Junio along with some minor style fixes and
one compile fix (asterisks need escaping).

Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agogitweb: Allow arbitrary strings to be dug with pickaxe
Petr Baudis [Thu, 17 May 2007 02:30:42 +0000 (04:30 +0200)]
gitweb: Allow arbitrary strings to be dug with pickaxe

Currently, there are rather draconian restrictions on the strings accepted
by the pickaxe search, which degrades its usefulness for digging in code
significantly. This patch remedies mentioned limitation.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Add support for grep searches
Petr Baudis [Thu, 17 May 2007 02:31:12 +0000 (04:31 +0200)]
gitweb: Add support for grep searches

The 'grep' type of search greps the currently selected tree for given
regexp and shows the results in a fancy table with links into blob view.
The number of shown matches is limited to 1000 and the whole feature
can be turned off (grepping linux-2.6.git already makes repo.or.cz a bit
unhappy).

This second revision makes it in documentation explicit that grep accepts
regexps, and makes grep accept extended regexps instead of basic regexps.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Normalize searchbar font size
Petr Baudis [Thu, 17 May 2007 02:24:19 +0000 (04:24 +0200)]
gitweb: Normalize searchbar font size

Currently, searchbar font was as big as the page heading font, because
font-size was made relative - but to the parent element, which was for some
reason indeed page_header. Since that seems to be illogical to me, I just
moved the div.search outside of div.page_header. I'm no CSS/DOM expert but
no adverse effects were observed by me.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Fri, 18 May 2007 00:36:57 +0000 (17:36 -0700)]
Merge branch 'maint'

* maint:
  Document core.excludesfile for git-add
  git-send-email: allow leading white space on mutt aliases

17 years agoDocument core.excludesfile for git-add
Michael Hendricks [Thu, 17 May 2007 05:08:50 +0000 (23:08 -0600)]
Document core.excludesfile for git-add

During the discussion of core.excludesfile in the user-manual, I realized
that the configuration wasn't mentioned in the man pages.

Signed-off-by: Michael Hendricks <michael@ndrix.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Fix error in git_patchset_body for deletion in merge commit
Jakub Narebski [Thu, 17 May 2007 20:54:28 +0000 (22:54 +0200)]
gitweb: Fix error in git_patchset_body for deletion in merge commit

Checking if $diffinfo->{'status'} is equal 'D' is no longer the way to
check if the file was deleted in result.  For merge commits
$diffinfo->{'status'} is reference to array of statuses for each
parent.  Use the fact that $diffinfo->{'to_id'} is all zeros as sign
that file was deleted in result.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'master' of git://repo.or.cz/git-gui
Junio C Hamano [Thu, 17 May 2007 23:52:45 +0000 (16:52 -0700)]
Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
  git-gui: Gracefully handle bad TCL_PATH at compile time

17 years agogit-gui: Gracefully handle bad TCL_PATH at compile time gitgui-0.7.1
Shawn O. Pearce [Thu, 17 May 2007 22:01:50 +0000 (18:01 -0400)]
git-gui: Gracefully handle bad TCL_PATH at compile time

Petr Baudis pointed out the main git.git repository's Makefile dies
now if git-gui 0.7.0-rc1 or later is being used and TCL_PATH was not
set to a working tclsh program path.  This breaks people who may have
a working build configuration today and suddenly upgrade to the latest
git release.

The tclIndex is required for git-gui to load its associated lib files,
but using the Tcl auto_load procedure to source only the files we need
is a performance optimization.  We can emulate the auto_load by just
source'ing every file in that directory, assuming we source class.tcl
first to initialize our crude class system.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-send-email: allow leading white space on mutt aliases
Michael Hendricks [Thu, 17 May 2007 05:15:16 +0000 (23:15 -0600)]
git-send-email: allow leading white space on mutt aliases

mutt version 1.5.14 (perhaps earlier versions too) permits alias files to have
white space before the 'alias' keyword.

Signed-off-by: Michael Hendricks <michael@ndrix.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: fix another use of undefined value
Junio C Hamano [Thu, 17 May 2007 04:04:16 +0000 (21:04 -0700)]
gitweb: fix another use of undefined value

Pasky and Jakub competed fixing these and in the confusion this ended up
not being covered.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd a birdview-on-the-source-code section to the user manual
Johannes Schindelin [Thu, 10 May 2007 10:36:15 +0000 (12:36 +0200)]
Add a birdview-on-the-source-code section to the user manual

In http://thread.gmane.org/gmane.comp.version-control.git/42479,
a birdview on the source code was requested.

J. Bruce Fields suggested that my reply should be included in the
user manual, and there was nothing of an outcry, so here it is,
not 2 months later.

It includes modifications as suggested by J. Bruce Fields, Karl
Hasselström and Daniel Barkalow.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
17 years agogitweb: Empty patch for merge means trivial merge, not no differences
Jakub Narebski [Wed, 16 May 2007 22:05:55 +0000 (00:05 +0200)]
gitweb: Empty patch for merge means trivial merge, not no differences

Earlier commit 4280cde95fa4e3fb012eb6d0c239a7777baaf60c made gitweb
show "No differences found" message for empty diff, for the HTML
output. But for merge commits, either -c format we use or --cc format,
empty diff doesn't mean no differences, but trivial merge.

Show "Trivial merge" message instead of "No differences found" for
merges.

While at it reword conditional in the code for easier reading.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Wed, 16 May 2007 19:43:05 +0000 (12:43 -0700)]
Merge branch 'maint'

* maint:
  format-patch: add MIME-Version header when we add content-type.
  Fixed link in user-manual
  import-tars: Use the "Link indicator" to identify directories
  git name-rev writes beyond the end of malloc() with large generations
  Documentation/branch: fix small typo in -D example

17 years agogitweb: Separate search regexp from search text
Jakub Narebski [Tue, 15 May 2007 23:56:10 +0000 (01:56 +0200)]
gitweb: Separate search regexp from search text

Separate search text, which is saved in $searchtext global variable,
and is used in links, as default value for the textfield in search
form, and for pickaxe search, from search regexp, which is saved in
$search_regexp global variable, and is used as parameter to --grep,
--committer or --author options to git-rev-list, and for searching
commit body in gitweb.  For now $search_regexp is unconditionallt
equal to quotemeta($searchtext), meaning that we always search for
fixed string.

This fixes bug where 'next page' links for 'search' view didn't work
for searchtext containing quotable characters, like `@'.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Do not use absolute font sizes
Jakub Narebski [Tue, 15 May 2007 23:59:55 +0000 (01:59 +0200)]
gitweb: Do not use absolute font sizes

David Kågedal proposed that gitweb should explicitely request
being somewhat smaller than normal, because it has good use for
long lines. However gitweb presents a table with several
columns, so having wider line is OK for it. Therefore explicit
'font-size: small' would make sense.  Apparently many people on
the list seem to agree with him.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoformat-patch: add MIME-Version header when we add content-type.
Jeff King [Tue, 15 May 2007 15:35:13 +0000 (11:35 -0400)]
format-patch: add MIME-Version header when we add content-type.

When we add Content-Type: header, we should also add
MIME-Version: header as well.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFixed link in user-manual
Steffen Prohaska [Wed, 16 May 2007 05:48:47 +0000 (07:48 +0200)]
Fixed link in user-manual

link to git-mergetool was broken.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://repo.or.cz/git/fastimport into maint
Junio C Hamano [Wed, 16 May 2007 19:13:55 +0000 (12:13 -0700)]
Merge branch 'maint' of git://repo.or.cz/git/fastimport into maint

* 'maint' of git://repo.or.cz/git/fastimport:
  import-tars: Use the "Link indicator" to identify directories

17 years agoimport-tars: Use the "Link indicator" to identify directories
Johannes Schindelin [Wed, 16 May 2007 16:22:26 +0000 (17:22 +0100)]
import-tars: Use the "Link indicator" to identify directories

Earlier, we used the mode to determine if a name was associated with
a directory. This fails, since some tar programs do not set the mode
correctly. However, the link indicator _has_ to be set correctly.

Noticed by Chris Riddoch.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoEnsure return value from xread() is always stored into an ssize_t
Johan Herland [Tue, 15 May 2007 12:49:22 +0000 (14:49 +0200)]
Ensure return value from xread() is always stored into an ssize_t

This patch fixes all calls to xread() where the return value is not
stored into an ssize_t. The patch should not have any effect whatsoever,
other than putting better/more appropriate type names on variables.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix signedness on return value from xread()
Johan Herland [Tue, 15 May 2007 12:39:25 +0000 (14:39 +0200)]
Fix signedness on return value from xread()

The return value from xread() is ssize_t.
Paolo Teti <paolo.teti@gmail.com> pointed out that in this case, the
signed return value was assigned to an unsigned type (size_t). This patch
fixes that.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit name-rev writes beyond the end of malloc() with large generations
Andy Whitcroft [Tue, 15 May 2007 16:33:25 +0000 (17:33 +0100)]
git name-rev writes beyond the end of malloc() with large generations

When using git name-rev on my kernel tree I triggered a malloc()
corruption warning from glibc.

apw@pinky$ git log --pretty=one $N/base.. | git name-rev --stdin
*** glibc detected *** malloc(): memory corruption: 0x0bff8950 ***
Aborted

This comes from name_rev() which is building the name of the revision
in a malloc'd string, which it sprintf's into:

char *new_name = xmalloc(len + 8);
[...]
sprintf(new_name, "%.*s~%d^%d", len, tip_name,
generation, parent_number);

This allocation is only sufficient if the generation number is
less than 5 digits, in my case generation was 13432.  In reality
parent_number can be up to 16 so that also can require two digits,
reducing us to 3 digits before we are at risk of blowing this
allocation.

This patch introduces a decimal_length() which approximates the
number of digits a type may hold, it produces the following:

Type                 Longest Value          Len  Est
----                 -------------          ---  ---
unsigned char        256                      3    4
unsigned short       65536                    5    6
unsigned long        4294967296              10   11
unsigned long long   18446744073709551616    20   21
char                 -128                     4    4
short                -32768                   6    6
long                 -2147483648             11   11
long long            -9223372036854775808    20   21

This is then used to size the new_name.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>