1
0
mirror of https://github.com/git/git.git synced 2024-10-04 07:32:33 +02:00
Commit Graph

4222 Commits

Author SHA1 Message Date
Linus Torvalds
d14f776402 git config syntax updates
This updates the hierarchical section name syntax to

	[section<space>+"<randomstring>"]

where the only rule for "randomstring" is that it can't contain a newline,
and if you really want to insert a double-quote, you do it with \".

It turns that into the section name "secion.randomstring".  The
"section" part is still case insensitive, but the "randomstring"
part is case sensitive.

So you could use this for things like

	[email "torvalds@osdl.org"]
		name = Linus Torvalds

if you wanted to do the "email->name" conversion as part of the config
file format (I'm not claiming that is sensible, I'm just giving it as an
insane example). That would show up as the association

	email.torvalds@osdl.org.name -> Linus Torvalds

which is easy to parse (the "." in the email _looks_ ambiguous, but it
isn't: you know that there will always be a single key-name, so you find
the key name with "strrchr(name, '.')" and things are entirely
unambiguous).

Repo-config is updated to be able to parse the new format, and also
write things out in the new format.

[jc: rolled two patches from Linus and one fix-up from Sean into one,
 with additional adjustments for t/t1300 test to check the case
 insensitiveness of section base and variable and case sensitiveness
 of the extended section part.  Then stripped some part off to make
 the result applicable to the stale 1.3.X series that does not have
 recent enhancements. ]

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-13 14:00:16 -07:00
sean
bdf0ef0824 Another config file parsing fix.
If the variable we need to store should go into a section
that currently only has a single variable (not matching
the one we're trying to insert), we will already be into
the next section before we notice we've bypassed the correct
location to insert the variable.

To handle this case we store the current location as soon
as we find a variable matching the section of our new
variable.

This breakage was brought up by Linus.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-13 14:00:16 -07:00
Junio C Hamano
618faa1dc7 checkout: use --aggressive when running a 3-way merge (-m).
After doing an in-index 3-way merge, we always do the stock
"merge-index merge-one-file" without doing anything fancy;
use of --aggressive helps performance quite a bit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-13 14:00:15 -07:00
Dennis Stosberg
66561f5a77 Fix git-pack-objects for 64-bit platforms
The offset of an object in the pack is recorded as a 4-byte integer
in the index file.  When reading the offset from the mmap'ed index
in prepare_pack_revindex(), the address is dereferenced as a long*.
This works fine as long as the long type is four bytes wide.  On
NetBSD/sparc64, however, a long is 8 bytes wide and so dereferencing
the offset produces garbage.

[jc: taking suggestion by Linus to use uint32_t]

Signed-off-by: Dennis Stosberg <dennis@stosberg.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-13 10:43:16 -07:00
Linus Torvalds
d1802851b0 revert/cherry-pick: use aggressive merge.
After doing an in-index 3-way merge, we always do the stock
"merge-index merge-one-file" without doing anything fancy;
use of --aggressive helps performance quite a bit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-09 19:22:25 -07:00
Yakov Lerner
28cc4ab422 read-cache.c: use xcalloc() not calloc()
Elsewhere we use xcalloc(); we should consistently do so.

Signed-off-by: Yakov Lerner <iler.ml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-09 06:28:59 -07:00
Eric Wong
dbd0f7d322 apply: fix infinite loop with multiple patches with --index
When multiple patches are passed to git-apply, it will attempt
to open multiple file descriptors to an index, which means
multiple entries will be in the circular cache_file_list.

This change makes git-apply only open the index once and
write the index at exit.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-09 01:29:38 -07:00
Dmitry V. Levin
31fff305bc Separate object name errors from usage errors
Separate object name errors from usage errors.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08 16:25:33 -07:00
Junio C Hamano
afb4ff2069 Documentation: {caret} fixes (git-rev-list.txt)
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08 13:46:53 -07:00
Linus Torvalds
5d6a9f45e1 Fix "git diff --stat" with long filenames
When we cut off the front of a filename to make it fit on the line, we add
a "..." in front. However, the way the "git diff" code was written, we
will never reset the prefix back to the empty string, so every single
filename afterwards will have the "..." prefix, whether appropriate or
not.

You can see this with "git diff v2.6.16.." on the current kernel tree,
since there are filenames with long names that changed there:

 [ snip snip ]
 Documentation/filesystems/vfs.txt                  |  229
 .../firmware_class/firmware_sample_driver.c        |    3
 .../firmware_sample_firmware_class.c               |    1
 ...Documentation/fujitsu/frv/kernel-ABI.txt           |  192
 ...Documentation/hwmon/w83627hf                       |    4
 [ snip snip ]

notice how the two Documentation/firmware** filenames caused the "..." to
be added, but then the later filenames don't want it, and it also screws
up the alignment of the line numbering afterwards.

Trivially fixed by moving the declaration (and initial setting) of the
"prefix" variable into the for-loop where it is used.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08 10:54:30 -07:00
Junio C Hamano
f8ba655ee4 Fix repo-config set-multivar error return path.
This hopefully fixes the problem an earlier commit 5d8ee9ceb attemted
to fix.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 21:27:30 -07:00
Martin Waitz
178613c737 repack: honor -d even when no new pack was created
If all objects are reachable via an alternate object store then we
still have to remove all obsolete local packs.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 15:35:50 -07:00
Martin Waitz
cf9dc65368 clone: keep --reference even with -l -s
Both -l -s and --reference update objects/info/alternates and used
to write over each other.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 15:33:43 -07:00
Junio C Hamano
6fe31e2e4c repo-config: document what value_regexp does a bit more clearly.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 15:32:51 -07:00
Pavel Roskin
5d8ee9ceb8 Release config lock if the regex is invalid
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 15:31:06 -07:00
Matthias Lederhofer
245f1029d6 core-tutorial.txt: escape asterisk
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07 13:55:36 -07:00
Junio C Hamano
e388c73825 core.prefersymlinkrefs: use symlinks for .git/HEAD
When inspecting a project whose build infrastructure used to
assume that .git/HEAD is a symlink ref, core.prefersymlinkrefs
in the config file of such a project would help to bisect its
history.

Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from 9f0bb90d161edf8c43f5261d12bf83f14eb02ff4 commit)
2006-05-05 14:37:08 -07:00
Johannes Schindelin
7ebdba6142 repo-config: trim white-space before comment
Earlier, calling

	git-repo-config core.hello

on a .git/config like this:

	[core]
		hello = world ; a comment

would yield "world " (i.e. with a trailing space).

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from c1aee1fd8d94da9b3c5d2dc1d4264f7e73a58f80 commit)
2006-05-05 14:34:47 -07:00
sean
93ddef3e2d Fix for config file section parsing.
Currently, if the target key has a section that matches
the initial substring of another section we mistakenly
believe we've found the correct section.  To avoid this
problem, ensure that the section lengths are identical
before comparison.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05 14:33:58 -07:00
Jon Loeliger
7abd7117ec Add a few more words to the glossary.
Clean up a few entries and fix typos.

    bare repository
    cherry-picking
    hook
    topic branch

[jc: removing questionable "symbolic ref -- see 'ref'" for now.]

Signed-off-by: Jon Loeliger <jdl@jdl.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
v1.3.2
2006-05-03 22:59:30 -07:00
Jon Loeliger
9290cd58c3 Added definitions for a few words:
fast forward
    pickaxe
    refspec
    tracking branch

Wild hack allows "link:git-" prefix to reference commands too.

Signed-off-by: Jon Loeliger <jdl@jdl.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03 22:31:50 -07:00
Jon Loeliger
aa9b1573a5 Alphabetize the glossary.
Signed-off-by: Jon Loeliger <jdl@jdl.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03 22:31:43 -07:00
Matthias Kestenholz
de5f2bf361 fix various typos in documentation
Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03 14:08:41 -07:00
Martin Langhoff
e923effb43 git-send-email: fix version string to be valid perl
This makes git-send-email easier to develop and debug, skipping the need
to `make git-send-email` every time.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-02 14:59:58 -07:00
Robert Shearman
ced9456a27 Give the user a hint for how to continue in the case that git-am fails because it requires user intervention
Give the user a hint for how to continue in the case that git-am fails
because it requires user intervention.

Signed-off-by: Robert Shearman <rob@codeweaves.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-02 12:42:12 -07:00
Huw Davies
262a6ef76a git-format-patch: Use rfc2822 compliant date.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-30 00:32:25 -07:00
Sean Estabrooks
aa6bf0eb64 Fix trivial typo in git-log man page.
Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
2006-04-28 14:31:53 -07:00
Sean Estabrooks
776e994af5 Properly render asciidoc "callouts" in git man pages.
Adds an xsl fragment to render docbook callouts when
converting to man page format.  Update the Makefile
to have "xmlto" use it when generating man pages.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
2006-04-28 14:31:51 -07:00
Sean Estabrooks
48aeecdcc1 Fix up remaining man pages that use asciidoc "callouts".
Unfortunately docbook does not allow a callout to be
referenced from inside a callout list description.
Rewrite one paragraph in git-reset man page to work
around this limitation.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
2006-04-28 14:31:36 -07:00
Sean Estabrooks
2eaf273d51 Update the git-branch man page to include the "-r" option,
and fix up asciidoc "callouts"

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
2006-04-28 14:31:18 -07:00
Matthias Kestenholz
fe77bb1a02 annotate: display usage information if no filename was given
Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
2006-04-28 14:29:04 -07:00
Matthias Kestenholz
d0ad165366 annotate: fix warning about uninitialized scalar
Use of uninitialized value in scalar chomp at
./git-annotate.perl line 212, <$kid> chunk 4.

Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
2006-04-28 14:28:28 -07:00
Junio C Hamano
c1d1128bef git-am --resolved: more usable error message.
After doing the hard work of hand resolving the conflicts in the
working tree, if the user forgets to run update-index to mark
the paths that have been resolved, the command gave an
unfriendly "fatal: git-write-tree: not able to write tree" error
message.  Catch the situation early and give more meaningful
message and suggestion.

Noticed and suggested by Len Brown.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-28 02:32:44 -07:00
Junio C Hamano
55e1805dff verify-pack: check integrity in a saner order.
Check internal integrity to report corrupt pack or idx, and
then check cross-integrity between idx and pack.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-27 15:42:17 -07:00
Junio C Hamano
5981e09999 commit-tree.c: check_valid() microoptimization.
There is no point reading the whole object just to make sure it exists and
it is of the expected type.  We added sha1_object_info() for such need
after this code was written, so use it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-26 16:55:25 -07:00
Linus Torvalds
e23d0b4a4a Fix filename verification when in a subdirectory
When we are in a subdirectory of a git archive, we need to take the prefix
of that subdirectory into accoung when we verify filename arguments.

Noted by Matthias Lederhofer

This also uses the improved error reporting for all the other git commands
that use the revision parsing interfaces, not just git-rev-parse. Also, it
makes the error reporting for mixed filenames and argument flags clearer
(you cannot put flags after the start of the pathname list).

[jc: with fix to a trivial typo noticed by Timo Hirvonen]

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-26 12:16:21 -07:00
Junio C Hamano
b176e6ba5b rebase: typofix.
Noticed by Sean.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-26 12:16:19 -07:00
Serge E. Hallyn
7d09fbe4ab socksetup: don't return on set_reuse_addr() error
The set_reuse_addr() error case was the only error case in
socklist() where we returned rather than continued.  Not sure
why.  Either we must free the socklist, or continue.  This patch
continues on error.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from 0032d548db56eac9ea09b4ba05843365f6325b85 commit)
v1.3.1
2006-04-24 23:07:54 -07:00
Petr Baudis
1ab661ddb7 Document the configuration file
This patch adds a Documentation/config.txt file included by git-repo-config
and currently aggregating hopefully all the available git plumbing / core
porcelain configuration variables, as well as briefly describing the format.

It also updates an outdated bit of the example in git-repo-config(1).

Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:26:37 -07:00
Petr Baudis
4ee6bc9913 Document git-var -l listing also configuration variables
Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:26:34 -07:00
Paul Mackerras
3e1a70d925 rev-parse: better error message for ambiguous arguments
Currently, if git-rev-parse encounters an argument that is neither a
recognizable revision name nor the name of an existing file or
directory, and it hasn't encountered a "--" argument, it prints an
error message saying "No such file or directory".  This can be
confusing for users, including users of programs such as gitk that
use git-rev-parse, who may then think that they can't ask about the
history of files that no longer exist.

This makes it print a better error message, one that points out the
ambiguity and tells the user what to do to fix it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-24 22:22:29 -07:00
Linus Torvalds
34fd1c9ac5 git-log produces no output
When $PAGER is set to 'less -i', we used to fail because we
assumed the $PAGER is a command and simply exec'ed it.

Try exec first, and then run it through shell if it fails.  This
allows even funkier PAGERs like these ;-):

	PAGER='sed -e "s/^/`date`: /" | more'
	PAGER='contrib/colordiff.perl | less -RS'

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21 13:00:10 -07:00
Nicolas Pitre
0dec30b978 fix pack-object buffer size
The input line has 40 _chars_ of sha1 and no 20 _bytes_. It should also
account for the space before the pathname, and the terminating \n and \0.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21 00:45:10 -07:00
Junio C Hamano
757319309a mailinfo: decode underscore used in "Q" encoding properly.
Quoted-Printable (RFC 2045) and the "Q" encoding (RFC 2047) are
subtly different; the latter is used on the mail header and an
underscore needs to be decoded to 0x20.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21 00:09:28 -07:00
Santi_Béjar
d598075e52 Reintroduce svn pools to solve the memory leak.
Introduced in 4802426.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-20 23:41:24 -07:00
Junio C Hamano
f527cb8c38 pack-objects: do not stop at object that is "too small"
Because we sort the delta window by name-hash and then size,
hitting an object that is too small to consider as a delta base
for the current object does not mean we do not have better
candidate in the window beyond it.

Noticed by Shawn Pearce, analyzed by Nico, Linus and me.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-20 23:36:22 -07:00
Junio C Hamano
6a74642c50 git-commit --amend: two fixes.
When running "git commit --amend" only to fix the commit log
message without any content change, we mistakenly showed the
git-status output that says "nothing to commit" without
commenting it out.

If you have already run update-index but you want to amend the
top commit, "git commit --amend --only" without any paths should
have worked, because --only means "starting from the base
commit, update-index these paths only to prepare the index to
commit, and perform the commit".  However, we refused -o without
paths.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-20 02:51:12 -07:00
Junio C Hamano
61c2bcbd11 pre-commit hook: complain about conflict markers.
Several <<< or === or >>> characters at the beginning of a line
is very likely to be leftover conflict markers from a failed
automerge the user resolved incorrectly, so detect them.

As usual, this can be defeated with "git commit --no-verify" if
you really do want to have those files, just like changes that
introduce trailing whitespaces.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-19 15:37:40 -07:00
Junio C Hamano
50ac740801 git-merge: a bit more readable user guidance.
We said "fix up by hand" after failed automerge, which was a big
"Huh?  Now what?".  Be a bit more explicit without being too
verbose. Suggested by Carl Worth.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-19 15:37:36 -07:00
Shawn Pearce
23edecbc9a Document git-clone --reference
The new --reference flag introduced to git-clone in
GIT 1.3.0 was not documented but is rather handy.
So document it.

Also corrected a minor issue with the documentation for the
-s flag; the info/alternates file name was spelled wrong.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18 17:56:53 -07:00