Commit Graph

13202 Commits

Author SHA1 Message Date
Jason McMullan
f3e9512be1 Remove $Id: ..$ $Header: ..$ etc from +ko and +k files during import
This patch removes the '$Keyword: ...$' '...' data, so that files
don't have spurious megre conflicts between branches.

Handles both +ko and +k styles, and leaves the '$Foo$' in
the original file.

Signed-off-by: Simon Hausmann <simon@lst.de>
2008-02-03 19:18:33 +01:00
Junio C Hamano
d8534adac7 Merge branch 'maint'
* maint:
  Fix "git-commit -C $tag"
  Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)
2008-02-03 00:57:23 -08:00
Junio C Hamano
8a2f87332b Fix "git-commit -C $tag"
The scripted version might not have handled this correctly
either, but the version rewritten in C definitely does not grok
this and complains $tag is not a commit object.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-03 00:56:35 -08:00
Jari Aalto
71bda8b923 Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)
Adjust the command syntax to better reflect the call parameters:
[save] [message...] => [save [<message>]].

Signed-off-by: Jari Aalto <jari.aalto AT cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-03 00:56:35 -08:00
Junio C Hamano
991c3dc79f known breakage: revision range computation with clock skew
This is the absolute minimum (and reliable) reproduction recipe
to demonstrate that revision range in a history with clock skew
sometimes fails to mark UNINTERESTING commit in topologically
early parts of the history.

The history looks like this:

	o---o---o---o
	one         four

but one has the largest timestamp.  "git rev-list four..one"
fails to notice that "one" should not be emitted.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-03 00:25:52 -08:00
Junio C Hamano
11d54b8b9a test: reword the final message of tests with known breakages
When we have known breakages, we still said "passed all N
test(s)", which was a bit funny.

This rewords it to read "passed all remaining N test(s)" in such
a case.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-03 00:25:37 -08:00
Junio C Hamano
41ac414ea2 Sane use of test_expect_failure
Originally, test_expect_failure was designed to be the opposite
of test_expect_success, but this was a bad decision.  Most tests
run a series of commands that leads to the single command that
needs to be tested, like this:

    test_expect_{success,failure} 'test title' '
	setup1 &&
        setup2 &&
        setup3 &&
        what is to be tested
    '

And expecting a failure exit from the whole sequence misses the
point of writing tests.  Your setup$N that are supposed to
succeed may have failed without even reaching what you are
trying to test.  The only valid use of test_expect_failure is to
check a trivial single command that is expected to fail, which
is a minority in tests of Porcelain-ish commands.

This large-ish patch rewrites all uses of test_expect_failure to
use test_expect_success and rewrites the condition of what is
tested, like this:

    test_expect_success 'test title' '
	setup1 &&
        setup2 &&
        setup3 &&
        ! this command should fail
    '

test_expect_failure is redefined to serve as a reminder that
that test *should* succeed but due to a known breakage in git it
currently does not pass.  So if git-foo command should create a
file 'bar' but you discovered a bug that it doesn't, you can
write a test like this:

    test_expect_failure 'git-foo should create bar' '
        rm -f bar &&
        git foo &&
        test -f bar
    '

This construct acts similar to test_expect_success, but instead
of reporting "ok/FAIL" like test_expect_success does, the
outcome is reported as "FIXED/still broken".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-01 20:49:34 -08:00
Junio C Hamano
6ce8e44a1e Update stale documentation links from the main documentation.
This could have been part of the 1.5.4 commit, but it isn't.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-01 20:40:30 -08:00
Junio C Hamano
c3c135291a GIT 1.5.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-01 19:10:10 -08:00
Junio C Hamano
7dc4642989 Fix "git checkout -b foo ':/substring'"
Because ':/substring' extended SHA1 expression cannot take
postfix modifiers such as ^{tree} and ^{commit}, we would need
to do it in multiple steps.  With the patch, you can start a new
branch from a randomly-picked commit whose message has the named
string in it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-01 19:08:14 -08:00
Michele Ballabio
0509eb216f Fix typo in a comment in t/test-lib.sh
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-31 14:43:54 -08:00
Miklos Vajna
da101b82b6 git rev-parse manpage: spelling fix
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-31 13:59:00 -08:00
Junio C Hamano
bb8eebb94f Revert "filter-branch docs: remove brackets so not to imply revision arg is optional"
This reverts commit c41b439244, as
we decided to default to HEAD when revision parameters are missing
and they are no longer mandatory.
2008-01-31 13:51:42 -08:00
Jean-Luc Herren
c02792edd6 Documentation/git-cvsserver: Fix typo
Signed-off-by: Jean-Luc Herren <jlh@gmx.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 18:50:41 -08:00
Brandon Casey
0f047f3b47 filter-branch: assume HEAD if no revision supplied
filter-branch previously took the first non-option argument as the name for
a new branch. Since dfd05e38, it now takes a revision or a revision range
and modifies the current branch. Update to operate on HEAD by default to
conform with standard git interface practice.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 18:50:25 -08:00
Brandon Casey
c41b439244 filter-branch docs: remove brackets so not to imply revision arg is optional
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 17:21:02 -08:00
Shawn O. Pearce
733f1815ab Use 'printf %s $x' notation in t5401
We only care about getting what should be an empty string and
sending it to a file, without a trailing LF, so the empty string
translates into a 0 byte file.  Earlier when I originally wrote
these lines Mac OS X allowed the format string of printf to be
the empty string, but more recent versions appear to have been
'improved' with error messages if the format is not given.

This may cause problems if we ever wind up with changes to the hook
tests.  A minor cleanup makes the test more safe on all systems,
by conforming to accepted printf conventions.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 17:17:39 -08:00
Brandon Casey
def16e7181 filter-branch.sh: remove temporary directory on failure
One of the first things filter-branch does is to create a temporary
directory. This directory is eventually removed by the script during
normal operation, but is not removed if the script encounters an error.

Set a trap to remove it when the script terminates for any reason.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 11:56:12 -08:00
Brandon Casey
0eab8ca68a git-relink: avoid hard linking in objects/info directory
git-relink is intended to search for packs and loose objects in
common between two repositories and to replace the one set with
hard links to the other. Files other than packs and loose objects
should not be touched, so add the "info" sub-directory to the
pattern of directory excludes.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-30 00:01:27 -08:00
Bruno Ribas
c1dcf7ebf2 gitweb: Make use of the $git_dir variable at sub git_get_project_description
Signed-off-by: Bruno Ribas <ribas@c3sl.ufpr.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 23:55:18 -08:00
Jakub Narebski
d661146ac2 gitweb: Add info about $projectroot and $projects_list to gitweb/README
Those two configuration variables are important enough that it is
worth to explicitely write about them in the "Gitweb config file
variables" section even if they are usually set during build by
GITWEB_PROJECTROOT and GITWEB_LIST build (Makefile) configuration
variables.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 22:01:20 -08:00
Jim Meyering
a5d86f7406 fix doc typos
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 22:00:34 -08:00
Junio C Hamano
bda3a31cc7 reflog-expire: Avoid creating new files in a directory inside readdir(3) loop
"git reflog expire --all" opened a directory in $GIT_DIR/logs/,
read reflog files in there readdir(3), and rewrote the file by
creating a new file and renaming it back inside the loop.  This
code structure can cause the newly created file to be returned
by subsequent call to readdir(3), and fall into an infinite loop
in the worst case.

This separates the processing to two phase.  Running
for_each_reflog() to find out and collect all refs, and then
iterate over them, calling expire_reflog().  This way, the
program would behave exactly the same way as if all the refs
were given by the user from the command line.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 21:48:57 -08:00
Yasushi SHOJI
7720224ceb gitweb: Convert generated contents to utf8 in commitdiff_plain
If the commit message, or commit author contains non-ascii, it must be
converted from Perl internal representation to utf-8, to follow what
got declared in HTTP header.  Use to_utf8() to do the conversion.

This necessarily replaces here-doc with "print" statements.

Signed-off-by: Yasushi SHOJI <yashi@atmark-techno.com>
Acked-by: İsmail Dönmez <ismail@pardus.org.tr>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 21:23:57 -08:00
Christian Couder
ab989adf6a instaweb: use 'browser.<tool>.path' config option if it's set.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 00:49:28 -08:00
Christian Couder
f7ff09d718 Documentation: help: specify supported html browsers.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 00:49:27 -08:00
Christian Couder
584627b4a6 Documentation: config: add "browser.<tool>.path".
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-29 00:49:23 -08:00
Johannes Schindelin
752527f513 Add test for rebase -i with commits that do not pass pre-commit
This accompanies c5b09feb78 (Avoid
update hook during git-rebase --interactive) to make sure that
any regression to make Debian's Bug#458782 (git-core: git-rebase
doesn't work when trying to squash changes into commits created
with --no-verify) resurface will be caught.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-28 11:04:00 -08:00
Jeff King
c0d4528119 t9001: add missing && operators
The exit value of some commands was not being used for the
test output.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-28 11:02:59 -08:00
Junio C Hamano
bf5aeb1506 GIT 1.5.4-rc5
Hopefully the last rc before the final...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 22:48:03 -08:00
Johannes Schindelin
c85c79279d pull --rebase: be cleverer with rebased upstream branches
When the upstream branch is tracked, we can detect if that branch
was rebased since it was last fetched.  Teach git to use that
information to rebase from the old remote head onto the new remote head.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 18:24:24 -08:00
Steffen Prohaska
e509db990b cvsserver: Fix for histories with multiple roots
Git histories may have multiple roots, which can cause
git merge-base to fail and this caused git cvsserver to die.

This commit teaches git cvsserver to handle a failing git
merge-base gracefully, and modifies the test case to verify this.
All the test cases now use a history with two roots.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>

 git-cvsserver.perl              |    9 ++++++++-
 t/t9400-git-cvsserver-server.sh |   10 +++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 17:58:18 -08:00
Steffen Prohaska
7549376587 t9400-git-cvsserver-server: Wrap setup into test case
It is preferable to have the test setup in a test case.  The
setup itself may fail and having it as a test case handles this
situation more gracefully.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 17:44:05 -08:00
Mike Hommey
ab8daa1836 Documentation: add a bit about sendemail.to configuration
While there is information about this in the configuration section, it was
missing in the options section.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 10:59:07 -08:00
Pierre Habouzit
3a9f0f41db parse-options: catch likely typo in presense of aggregated options.
If options are aggregated, and that the whole token is an exact
prefix of a long option that is longer than 2 letters, reject
it.  This is to prevent a common typo:

	$ git commit -amend

to get interpreted as "commit all with message 'end'".

The typo check isn't performed if there is no aggregation,
because the stuck form is the recommended one.  If we have `-o`
being a valid short option that takes an argument, and --option
a long one, then we _MUST_ accept -option as "'o' option with
argument 'ption'", which is our official recommended form.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 10:53:31 -08:00
Mike Hommey
923e3ec84a Add a missing dependency on http.h
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-26 10:52:40 -08:00
Miklos Vajna
10eb64f5fd git pull manpage: don't include -n from fetch-options.txt
The -n option stands for --no-summary in git pull

[jes: reworded the description to avoid mentioning 'git-fetch';
 also exclude '-n' conditional on git-pull -- ugly because of
 the missing "else" statement in asciidoc]

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-25 22:42:36 -08:00
Sam Vilain
2b0d1033a3 git-svn(1): update instructions for resuming a git-svn clone
git-svn expects its references under refs/remotes/*; but these will
not be copied or set by "git clone"; put in this man page the manual
fiddling that is required with current git-svn to get this to work.

Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-25 22:31:52 -08:00
Jakub Narebski
3cf3237400 autoconf: define NO_SYS_SELECT_H on systems without <sys/select.h>.
Pre-POSIX.1-2001 systems don't have <sys/select.h>, but select(2)
is declared in <sys/time.h>, which git-compat-util.h includes.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-25 22:26:08 -08:00
Robert Schiele
81cc66a526 Makefile: customization for supporting HP-UX
Signed-off-by: Robert Schiele <rschiele@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-24 21:58:53 -08:00
Robert Schiele
2600973f2c pre-POSIX.1-2001 systems do not have <sys/select.h>
POSIX.1-2001 has declaration of select(2) in <sys/select.h>, but
in the previous version of SUS, it was declared in <sys/time.h>
(which is already included in git-compat-util.h).

This introduces NO_SYS_SELECT_H macro in the Makefile to be set
on older systems, to skip inclusion of <sys/select.h> that does
not exist on them.

We could check _POSIX_VERSION with 200112L and do this
automatically, but earlier it was reported that the approach
does not work well on some vintage of HP-UX.  Other systems may
get _POSIX_VERSION itself wrong.  At least for now, this manual
configuration is safer.

Signed-off-by: Robert Schiele <rschiele@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-24 14:01:28 -08:00
Junio C Hamano
cab31fa076 Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui:
  git-gui: Correctly cleanup msgfmt '1 message untranslated' output
  git-gui: Make the statistics of po2msg match those of msgfmt
  git-gui: Fallback to Tcl based po2msg.sh if msgfmt isn't available
  git-gui: Work around random missing scrollbar in revision list
2008-01-23 21:37:12 -08:00
Brandon Casey
5a9dd3998f git-commit: exit non-zero if we fail to commit the index
In certain rare cases, the creation of the commit object
and update of HEAD can succeed, but then installing the
updated index will fail. This is most likely caused by a
full disk or exceeded disk quota. When this happens the
new index file will be removed, and the repository will
be left with the original now-out-of-sync index. The
user can recover with a "git reset HEAD" once the disk
space issue is resolved.

We should detect this failure and offer the user some
helpful guidance.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-23 10:10:11 -08:00
Miklos Vajna
28678b4f2f git-clone -s: document problems with git gc --prune
There is a scenario when using git clone -s and git gc --prune togother is
dangerous. Document this.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-23 10:09:54 -08:00
Shawn O. Pearce
3b8f19a02c git-gui: Correctly cleanup msgfmt '1 message untranslated' output
In the multiple message case we remove the word "messages" from the
statistics output of msgfmt as it looks cleaner on the tty when you
are watching the build process.  However we failed to strip the word
"message" when only 1 message was found to be untranslated or fuzzy,
as msgfmt does not produce the 's' suffix.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-22 23:56:15 -05:00
Shawn O. Pearce
2cd9ad2e71 git-gui: Make the statistics of po2msg match those of msgfmt
The strings we were showing from po2msg didn't exactly match those
of msgfmt's --statistics output so we didn't show quite the same
results when building git-gui's message files.  Now we're closer
to what msgfmt shows (at least for an en_US locale) so the make
output matches.

I noticed that the fuzzy translation count is off by one for the
current po/zh_cn.po file.  Not sure why and I'm not going to try
and debug it at this time as the po2msg is strictly a fallback,
users building from source really should prefer msgfmt.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-22 23:52:07 -05:00
Shawn O. Pearce
3470adabad git-gui: Fallback to Tcl based po2msg.sh if msgfmt isn't available
If msgfmt fails with exit code 127 that typically means the program
is not found in the user's PATH and thus cannot be executed by make.
In such a case we can try to fallback to the Tcl based po2msg program
that we distributed with git-gui, as it does a "good enough" job.

We still don't default to po2msg.sh however as it does not perform
a lot of the sanity checks that msgfmt does, and quite a few of
those are too useful to give up.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-22 23:44:36 -05:00
Shawn O. Pearce
3ddff72e58 git-gui: Work around random missing scrollbar in revision list
If the horizontal scrollbar isn't currently visible (because it has
not been needed) but we get an update to the scroll port we may find
the scrollbar window exists but the Tcl command doesn't.  Apparently
it is possible for Tk to have partially destroyed the scrollbar by
removing the Tcl procedure name but still leaving the widget name in
the window registry.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-22 23:37:15 -05:00
Eric Wong
3b839fd861 git-svn: default to repacking every 1000 commits
This should reduce disk space usage when doing large imports.
We'll be switching to "gc --auto" post-1.5.4 to handle
repacking for us.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-22 01:45:40 -08:00
Junio C Hamano
4f5f998fbd Clarify that http-push being temporarily disabled with older cURL
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-22 00:48:29 -08:00