Code

git.git
17 years agouser-manual: quick-start updates
J. Bruce Fields [Tue, 5 Jun 2007 22:33:27 +0000 (18:33 -0400)]
user-manual: quick-start updates

Update text to reflect new position in appendix.

Update the name to reflect the fact that this is closer to reference
than tutorial documentation (as suggested by Jonas Fonseca).

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoMake command description imperative statement, not third-person present.
william pursell [Sat, 9 Jun 2007 15:44:12 +0000 (16:44 +0100)]
Make command description imperative statement, not third-person present.

In several of the text messages, the tense of the verb is inconsistent.
For example, "Add" vs "Creates".  It is customary to use imperative for
command description.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agocheckout: do not get confused with ambiguous tag/branch names
Junio C Hamano [Fri, 8 Jun 2007 08:19:13 +0000 (01:19 -0700)]
checkout: do not get confused with ambiguous tag/branch names

Although it is not advisable, we have always allowed a branch
and a tag to have the same basename (i.e. it is not illegal to
have refs/heads/frotz and refs/tags/frotz at the same time).
When talking about a specific commit, the interpretation of
'frotz' has always been "use tag and then check branch",
although we warn when ambiguities exist.

However "git checkout $name" is defined to (1) first see if it
matches the branch name, and if so switch to that branch; (2)
otherwise it is an instruction to detach HEAD to point at the
commit named by $name.  We did not follow this definition when
$name appeared under both refs/heads/ and refs/tags/ -- we
switched to the branch but read the tree from the tagged commit,
which was utterly bogus.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agogit-cvsimport: Make sure to use $git_dir always instead of .git sometimes
Michael Milligan [Tue, 5 Jun 2007 06:06:30 +0000 (00:06 -0600)]
git-cvsimport: Make sure to use $git_dir always instead of .git sometimes

CVS import was failing on a couple repos I was trying to import.
I was setting GIT_DIR=newproj.git and using the -i flag, but this bug
was thwarting the effort...  evil CVS.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agofix documentation of unpack-objects -n
Sam Vilain [Wed, 6 Jun 2007 21:23:16 +0000 (09:23 +1200)]
fix documentation of unpack-objects -n

unpack-objects -n didn't print the object list as promised on the
manual page, so alter the documentation to reflect the behaviour

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agoAccept dates before 2000/01/01 when specified as seconds since the epoch
Johannes Sixt [Wed, 6 Jun 2007 08:11:55 +0000 (10:11 +0200)]
Accept dates before 2000/01/01 when specified as seconds since the epoch

Tests with git-filter-branch on a repository that was converted from
CVS and that has commits reaching back to 1999 revealed that it is
necessary to parse dates before 2000/01/01 when they are specified
as seconds since 1970/01/01. There is now still a limit, 100000000,
which is 1973/03/03 09:46:40 UTC, in order to allow that dates are
represented as 8 digits.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agoGIT 1.5.2.1 v1.5.2.1
Junio C Hamano [Sat, 2 Jun 2007 22:01:33 +0000 (15:01 -0700)]
GIT 1.5.2.1

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoUse =20 when rfc2047 encoding spaces.
Kristian Høgsberg [Fri, 1 Jun 2007 21:08:12 +0000 (17:08 -0400)]
Use =20 when rfc2047 encoding spaces.

Encode ' ' using '=20' even though rfc2047 allows using '_' for
readability.  Unfortunately, many programs do not understand this and
just leave the underscore in place.  Using '=20' seems to work better.

[jc: with adjustment to t3901]

Signed-off-by: Kristian Høgsberg <hoegsberg@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoCreate a new manpage for the gitignore format, and reference it elsewhere
Josh Triplett [Sat, 2 Jun 2007 17:08:54 +0000 (10:08 -0700)]
Create a new manpage for the gitignore format, and reference it elsewhere

Only git-ls-files(1) describes the gitignore format in detail, and it does so
with reference to git-ls-files options.  Most users don't use the plumbing
command git-ls-files directly, and shouldn't have to look in its manpage for
information on the gitignore format.

Create a new manpage gitignore(5) (Documentation/gitignore.txt), and factor
out the gitignore documentation into that file, changing it to refer to
.gitignore and $GIT_DIR/info/exclude as used by porcelain commands.  Reference
gitignore(5) from other relevant manpages and documentation.  Remove
now-redundant information on exclude patterns from git-ls-files(1), leaving
only information on how git-ls-files options specify exclude patterns and what
precedence they have.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: robustify asciidoc GIT_VERSION replacement
Jeff King [Fri, 1 Jun 2007 09:10:30 +0000 (05:10 -0400)]
Documentation: robustify asciidoc GIT_VERSION replacement

Instead of using sed on the resulting file, we now have a
git_version asciidoc attribute. This means that we don't
pipe the output of asciidoc, which means we can detect build
failures.

Problem reported by Scott Lamb, solution suggested by Jonas Fonseca.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Thu, 31 May 2007 07:09:26 +0000 (00:09 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  git-config: Improve documentation of git-config file handling
  git-config: Various small fixes to asciidoc documentation
  decode_85(): fix missing return.
  fix signed range problems with hex conversions

17 years agogit-config: Improve documentation of git-config file handling
Frank Lichtenheld [Thu, 31 May 2007 00:35:37 +0000 (02:35 +0200)]
git-config: Improve documentation of git-config file handling

The description which files git-config uses and how the various
command line options and environment variables affect its
behaviour was incomplete, outdated and confusing.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-config: Various small fixes to asciidoc documentation
Frank Lichtenheld [Thu, 31 May 2007 00:35:36 +0000 (02:35 +0200)]
git-config: Various small fixes to asciidoc documentation

Add '' around the only mentioned commandline option that didn't
have it.

Make reference to section EXAMPLE a link and rename it to
EXAMPLES because it actually contains a lot of examples.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agodecode_85(): fix missing return.
Jerald Fitzjerald [Wed, 30 May 2007 12:39:58 +0000 (05:39 -0700)]
decode_85(): fix missing return.

When the function detected an invalid base85 sequence, it issued
an error message but forgot to return error status at that point
and kept going.

Signed-off-by: Jerald Fitzjerald <jfj@freemail.gr>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agofix signed range problems with hex conversions
Linus Torvalds [Wed, 30 May 2007 17:32:19 +0000 (10:32 -0700)]
fix signed range problems with hex conversions

Make hexval_table[] "const".  Also make sure that the accessor
function hexval() does not access the table with out-of-range
values by declaring its parameter "unsigned char", instead of
"unsigned int".

With this, gcc can just generate:

movzbl  (%rdi), %eax
movsbl  hexval_table(%rax),%edx
movzbl  1(%rdi), %eax
movsbl  hexval_table(%rax),%eax
sall    $4, %edx
orl     %eax, %edx

for the code to generate a byte from two hex characters.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Fix some typos in asciidoc documentation
Frank Lichtenheld [Sun, 27 May 2007 12:33:08 +0000 (14:33 +0200)]
cvsserver: Fix some typos in asciidoc documentation

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Note that CVS_SERVER can also be specified as method variable
Frank Lichtenheld [Sun, 27 May 2007 12:33:07 +0000 (14:33 +0200)]
cvsserver: Note that CVS_SERVER can also be specified as method variable

Reasonably new versions of the cvs CLI client allow one to
specifiy CVS_SERVER as a method variable directly in
CVSROOT. This is way more convinient than using an
environment variable since it gets saved in CVS/Root.

Since I only discovered this by accident I guess there
might be others out there that learnt CVS on the 1.11
series (or even earlier) and profit from such a note
about cvs improvements in the last couple years.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Correct inetd.conf example in asciidoc documentation
Frank Lichtenheld [Sun, 27 May 2007 12:33:06 +0000 (14:33 +0200)]
cvsserver: Correct inetd.conf example in asciidoc documentation

While the given example worked, it made us look rather
incompetent. Give the correct reason why one needs the
more complex syntax and change the example to reflect
that.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: fixed typo in example
Steffen Prohaska [Sat, 26 May 2007 19:16:27 +0000 (21:16 +0200)]
user-manual: fixed typo in example

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd test case for $Id$ expanded in the repository
Andy Parkins [Sun, 27 May 2007 10:52:11 +0000 (11:52 +0100)]
Add test case for $Id$ expanded in the repository

This test case would have caught the bug fixed by revision
c23290d5.

It puts various forms of $Id$ into a file in the repository,
without allowing git to collapse them to uniformity.  Then enables the
$Id$ expansion on checkout, and checks that what is checked out has
coped with the various forms.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Tue, 29 May 2007 06:54:26 +0000 (23:54 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  git-svn: avoid md5 calculation entirely if SVN doesn't provide one
  Fix stupid typo in lookup_tag()

17 years agogit-svn: avoid md5 calculation entirely if SVN doesn't provide one
Eric Wong [Sun, 27 May 2007 22:59:01 +0000 (15:59 -0700)]
git-svn: avoid md5 calculation entirely if SVN doesn't provide one

There's no point in calculating an MD5 if we're not going to use
it.  We'll also avoid the possibility of there being a bug in the
Perl MD5 library not being able to handle zero-sized files.

This is a followup to 20b3d206acbbb042c7ad5f42d36ff8d036a538c5,
which allows us to track repositories that do not provide MD5
checksums.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Tue, 29 May 2007 03:23:10 +0000 (20:23 -0700)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Guess our share/git-gui/lib path at runtime if possible
  Correct key bindings to Control-<foo>
  git-gui: Tighten internal pattern match for lib/ directory

17 years agoMakefile: Remove git-fsck and git-verify-pack from PROGRAMS
Nguyen Thai Ngoc Duy [Tue, 29 May 2007 02:05:43 +0000 (22:05 -0400)]
Makefile: Remove git-fsck and git-verify-pack from PROGRAMS

Those are builtins. Remove them from PROGRAMS variable

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix stupid typo in lookup_tag()
Johan Herland [Mon, 28 May 2007 23:21:25 +0000 (01:21 +0200)]
Fix stupid typo in lookup_tag()

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-gui: Guess our share/git-gui/lib path at runtime if possible gitgui-0.7.2
Shawn O. Pearce [Sun, 27 May 2007 04:03:37 +0000 (00:03 -0400)]
git-gui: Guess our share/git-gui/lib path at runtime if possible

Johannes Sixt asked me to try to avoid embedding the runtime location
of git-gui's library directory in the executable script.  Not embedding
it helps the MinGW to be relocatable to another directory should a user
wish to install the programs in a directory other than the location the
packager wanted them to be installed into.

Most of this is a hack.  We try to determine if the path of our master
git-gui script will be able to locate the lib by ../share/git-gui/lib.
This should be true if $(gitexecdir) and $(libdir) have the same prefix.
If they do then we defer the assignment of $(libdir) until runtime, and
we get it from $argv0 rather than embedding it into the script itself.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Sat, 26 May 2007 08:30:40 +0000 (01:30 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  Fix git-svn to handle svn not reporting the md5sum of a file, and test.
  More echo "$user_message" fixes.
  Add tests for the last two fixes.
  git-commit: use printf '%s\n' instead of echo on user-supplied strings
  git-am: use printf instead of echo on user-supplied strings
  Documentation: Add definition of "evil merge" to GIT Glossary
  Replace the last 'dircache's by 'index'
  Documentation: Clean up links in GIT Glossary

17 years agoFix git-svn to handle svn not reporting the md5sum of a file, and test.
James Y Knight [Thu, 24 May 2007 04:37:06 +0000 (00:37 -0400)]
Fix git-svn to handle svn not reporting the md5sum of a file, and test.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix mishandling of $Id$ expanded in the repository copy in convert.c
Andy Parkins [Fri, 25 May 2007 10:50:08 +0000 (11:50 +0100)]
Fix mishandling of $Id$ expanded in the repository copy in convert.c

If the repository contained an expanded ident keyword (i.e. $Id:XXXX$),
then the wrong bytes were discarded, and the Id keyword was not
expanded.  The fault was in convert.c:ident_to_worktree().

Previously, when a "$Id:" was found in the repository version,
ident_to_worktree() would search for the next "$" after this, and
discarded everything it found until then.  That was done with the loop:

    do {
        ch = *cp++;
        if (ch == '$')
            break;
        rem--;
    } while (rem);

The above loop left cp pointing one character _after_ the final "$"
(because of ch = *cp++).  This was different from the non-expanded case,
were cp is left pointing at the "$", and was different from the comment
which stated "discard up to but not including the closing $".  This
patch fixes that by making the loop:

    do {
        ch = *cp;
        if (ch == '$')
            break;
        cp++;
        rem--;
    } while (rem);

That is, cp is tested _then_ incremented.

This loop exits if it finds a "$" or if it runs out of bytes in the
source.  After this loop, if there was no closing "$" the expansion is
skipped, and the outer loop is allowed to continue leaving this
non-keyword as it was.  However, when the "$" is found, size is
corrected, before running the expansion:

    size -= (cp - src);

This is wrong; size is going to be corrected anyway after the expansion,
so there is no need to do it here.  This patch removes that redundant
correction.

To help find this bug, I heavily commented the routine; those comments
are included here as a bonus.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMore echo "$user_message" fixes.
Jeff King [Sat, 26 May 2007 07:33:03 +0000 (00:33 -0700)]
More echo "$user_message" fixes.

Here are fixes to more uses of 'echo "$msg"' where $msg could contain
backslashed sequence.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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

17 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

17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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

17 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>
17 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

17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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.

17 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>
17 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>
17 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>
17 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

17 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>
17 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>
17 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>
17 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>
17 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

17 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>
17 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>
17 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>
17 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>
17 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>
17 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>