aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* builtin-mv: minimum fix to avoid losing filesJunio C Hamano2008-02-05
| | | | | | | | | | | | | | An incorrect command "git mv subdir /outer/space" threw the subdirectory to outside of the repository and then noticed that /outer/space/subdir/ would be outside of the repository. The error checking is backwards. This fixes the issue by being careful about use of the return value of get_pathspec(). Since the implementation already has handcrafted loop to munge each path on the command line, we use prefix_path() instead. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-add: adjust to the get_pathspec() changes.Junio C Hamano2008-02-05
| | | | | | | | | | | We would need to notice and fail if command line had a nonsense pathspec. Earlier get_pathspec() returned all the inputs including bad ones, but the new one issues warnings and removes offending ones from its return value, so the callers need to be adjusted to notice it. Additional test scripts were initially from Robin Rosenberg, further fixed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Make blame accept absolute pathsRobin Rosenberg2008-02-05
| | | | | | | Blame did not always use prefix_path. Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup: sanitize absolute and funny paths in get_pathspec()Junio C Hamano2008-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The prefix_path() function called from get_pathspec() is responsible for translating list of user-supplied pathspecs to list of pathspecs that is relative to the root of the work tree. When working inside a subdirectory, the user-supplied pathspecs are taken to be relative to the current subdirectory. Among special path components in pathspecs, we used to accept and interpret only "." ("the directory", meaning a no-op) and ".." ("up one level") at the beginning. Everything else was passed through as-is. For example, if you are in Documentation/ directory of the project, you can name Documentation/howto/maintain-git.txt as: howto/maintain-git.txt ../Documentation/howto/maitain-git.txt ../././Documentation/howto/maitain-git.txt but not as: howto/./maintain-git.txt $(pwd)/howto/maintain-git.txt This patch updates prefix_path() in several ways: - If the pathspec is not absolute, prefix (i.e. the current subdirectory relative to the root of the work tree, with terminating slash, if not empty) and the pathspec is concatenated first and used in the next step. Otherwise, that absolute pathspec is used in the next step. - Then special path components "." (no-op) and ".." (up one level) are interpreted to simplify the path. It is an error to have too many ".." to cause the intermediate result to step outside of the input to this step. - If the original pathspec was not absolute, the result from the previous step is the resulting "sanitized" pathspec. Otherwise, the result from the previous step is still absolute, and it is an error if it does not begin with the directory that corresponds to the root of the work tree. The directory is stripped away from the result and is returned. - In any case, the resulting pathspec in the array get_pathspec() returns omit the ones that caused errors. With this patch, the last two examples also behave as expected. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* man pages are littered with .ft C and othersJonas Fonseca2008-02-05
| | | | | | | | | | | | | | | | | | | | | Jakub Narebski <jnareb@gmail.com> wrote Sun, Feb 03, 2008: > Junio C Hamano wrote: > > Jakub Narebski <jnareb@gmail.com> writes: > > > > [From] http://thread.gmane.org/gmane.comp.version-control.git/53457/focus=53458 > Julian Phillips: > > Are you using docbook xsl 1.72? There are known problems building the > > manpages with that version. 1.71 works, and 1.73 should work when it get > > released. I was able to solve this problem with this patch, which adds a XSL file used specifically for DOCBOOK_XSL_172=YesPlease and where dots and backslashes are escaped properly so they won't be substituted to the wrong thing further down the "DocBook XSL pipeline". Doing the escaping in the existing callout.xsl breaks v1.70.1. Hopefully v1.73 will end this part of the manpage nightmare. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Add a BuildRequires for gettext in the spec file.James Bowes2008-02-04
| | | | | Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Test :/string form for checkoutDaniel Barkalow2008-02-04
| | | | | Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* fix misuse of prefix_path()Junio C Hamano2008-02-03
| | | | | | | | | | | | | | When DEFAULT_GIT_TEMPLATE_DIR is specified as a relative path, init-db made it relative to exec_path using prefix_path(), which is wrong. prefix_path() is about a file inside the work tree. There was a similar misuse in config.c that takes relative ETC_GITCONFIG path. A convenience function prefix_filename() can concatenate two paths to form a path that points at somewhere outside the work tree. Use it in these codepaths instead. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* parse_object_buffer: don't ignore errors from the object specific parsing ↵Martin Koegler2008-02-03
| | | | | | | | | | | | | functions In the case of an malformed object, the object specific parsing functions would return an error, which is currently ignored. The object can be partial initialized in this case. This patch make parse_object_buffer propagate such errors. Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-fsck: report missing author/commit line in a commit as an errorMartin Koegler2008-02-03
| | | | | | | | | | | | | | | A zero commit date could be caused by: * a missing author line * a missing commiter line * a malformed email address in the commiter line * a malformed commit date Simply reporting it as zero commit date is missleading. Additionally, it upgrades the message to an error (instead of an printf). Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint'Junio C Hamano2008-02-03
|\ | | | | | | | | | | * maint: git-remote documentation: fix synopsis to match description git-am: fix type in its usage string
| * git-remote documentation: fix synopsis to match descriptionJörg Sommer2008-02-03
| | | | | | | | | | | | | | | | In the text, the argument of -m is <master> which should be used in the command synopsis, too. Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * git-am: fix type in its usage stringJörg Sommer2008-02-03
| | | | | | | | | | Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-p4: Fix an obvious typoTommy Thorn2008-02-03
| | | | | | | | | | | | | | | | | | | | The regexp "$," can't match anything. Clearly not intended. This was introduced in ce6f33c8 which is quite a while ago. Signed-off-by: Tommy Thorn <tommy-git@thorn.ws> Acked-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Let "git svn" run "git gc --auto" occasionallyKarl Hasselström2008-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let "git svn" run "git gc --auto" every 1000 imported commits to reduce the number of loose objects. To handle the common use case of frequent imports, where each invocation typically fetches much less than 1000 commits, also run gc unconditionally at the end of the import. "1000" is the same number that was used by default when we called git-repack. It isn't necessarily still the best choice. Signed-off-by: Karl Hasselström <kha@treskal.com> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: Don't call git-repack anymoreKarl Hasselström2008-02-03
| | | | | | | | | | | | | | | | | | | | | | | | In a moment, we'll start calling git-gc --auto instead, since it is a better fit to what we're trying to accomplish. The command line options are still accepted, but don't have any effect, and we warn the user about that. Signed-off-by: Karl Hasselström <kha@treskal.com> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-p4: Ensure the working directory and the index are clean before "git-p4 ↵Simon Hausmann2008-02-03
| | | | | | | | | | | | rebase" Signed-off-by: Simon Hausmann <simon@lst.de>
* | git-p4: Fix submit user-interface.Simon Hausmann2008-02-03
| | | | | | | | | | | | Don't ask any questions when submitting, behave similar to git-svn dcommit. Signed-off-by: Simon Hausmann <simon@lst.de>
* | Remove $Id: ..$ $Header: ..$ etc from +ko and +k files during importJason McMullan2008-02-03
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge branch 'maint'Junio C Hamano2008-02-03
|\ \ | |/ | | | | | | | | * maint: Fix "git-commit -C $tag" Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)
| * Fix "git-commit -C $tag"Junio C Hamano2008-02-03
| | | | | | | | | | | | | | | | 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>
| * Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)Jari Aalto2008-02-03
| | | | | | | | | | | | | | | | 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>
* | known breakage: revision range computation with clock skewJunio C Hamano2008-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | test: reword the final message of tests with known breakagesJunio C Hamano2008-02-03
| | | | | | | | | | | | | | | | | | | | 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>
* | Sane use of test_expect_failureJunio C Hamano2008-02-01
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Update stale documentation links from the main documentation.Junio C Hamano2008-02-01
| | | | | | This could have been part of the 1.5.4 commit, but it isn't. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* GIT 1.5.4v1.5.4Junio C Hamano2008-02-01
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Fix "git checkout -b foo ':/substring'"Junio C Hamano2008-02-01
| | | | | | | | | | 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>
* Fix typo in a comment in t/test-lib.shMichele Ballabio2008-01-31
| | | | | Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git rev-parse manpage: spelling fixMiklos Vajna2008-01-31
| | | | | Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Revert "filter-branch docs: remove brackets so not to imply revision arg is ↵Junio C Hamano2008-01-31
| | | | | | | | optional" This reverts commit c41b439244c51b30c60953192816afc91e552578, as we decided to default to HEAD when revision parameters are missing and they are no longer mandatory.
* Documentation/git-cvsserver: Fix typoJean-Luc Herren2008-01-30
| | | | | Signed-off-by: Jean-Luc Herren <jlh@gmx.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* filter-branch: assume HEAD if no revision suppliedBrandon Casey2008-01-30
| | | | | | | | | | 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>
* filter-branch docs: remove brackets so not to imply revision arg is optionalBrandon Casey2008-01-30
| | | | | Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Use 'printf %s $x' notation in t5401Shawn O. Pearce2008-01-30
| | | | | | | | | | | | | | | | 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>
* filter-branch.sh: remove temporary directory on failureBrandon Casey2008-01-30
| | | | | | | | | | | | 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>
* git-relink: avoid hard linking in objects/info directoryBrandon Casey2008-01-30
| | | | | | | | | | | 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>
* gitweb: Make use of the $git_dir variable at sub git_get_project_descriptionBruno Ribas2008-01-29
| | | | | Signed-off-by: Bruno Ribas <ribas@c3sl.ufpr.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* gitweb: Add info about $projectroot and $projects_list to gitweb/READMEJakub Narebski2008-01-29
| | | | | | | | | | | 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>
* fix doc typosJim Meyering2008-01-29
| | | | | Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* reflog-expire: Avoid creating new files in a directory inside readdir(3) loopJunio C Hamano2008-01-29
| | | | | | | | | | | | | | | | | "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>
* gitweb: Convert generated contents to utf8 in commitdiff_plainYasushi SHOJI2008-01-29
| | | | | | | | | | | | | 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>
* instaweb: use 'browser.<tool>.path' config option if it's set.Christian Couder2008-01-29
| | | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Documentation: help: specify supported html browsers.Christian Couder2008-01-29
| | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Documentation: config: add "browser.<tool>.path".Christian Couder2008-01-29
| | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Add test for rebase -i with commits that do not pass pre-commitJohannes Schindelin2008-01-28
| | | | | | | | | | | This accompanies c5b09feb786f6a2456ec3d8203d0f4d67f09f043 (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>
* t9001: add missing && operatorsJeff King2008-01-28
| | | | | | | | 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>
* GIT 1.5.4-rc5v1.5.4-rc5Junio C Hamano2008-01-26
| | | | | | Hopefully the last rc before the final... Signed-off-by: Junio C Hamano <gitster@pobox.com>
* pull --rebase: be cleverer with rebased upstream branchesJohannes Schindelin2008-01-26
| | | | | | | | | 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>
* cvsserver: Fix for histories with multiple rootsSteffen Prohaska2008-01-26
| | | | | | | | | | | | | | | | 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>