summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-06-03Documentation: git-log cannot use rev-list specific optionsLibravatar Junio C Hamano1-0/+6
The log family and git-rev-list share the same set of options that come from revision walking machinery, but they both have options unique to them. Notably, --header, --timestamp, --stdin and --quiet apply only to rev-list. Exclude them from the git-log documentation. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03Fix t5516 on cygwin: it does not like double slashes at the beginning of a pathLibravatar Alex Riesen1-1/+1
The double slashes "//" result from url./$TRASH/. expansion and the current directory, which even in cygwin contains "/" as first character. In cygwin such strings have special meaning: UNC path. Accessing an UNC path built for test purpose usually fails. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03t7502: tighten loosely written test sequenceLibravatar Junio C Hamano1-17/+18
We would like to catch breakage at any step in the sequence. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03t7502: do not globally unset GIT_COMMITTER_* environment variablesLibravatar Junio C Hamano1-3/+6
One particular test wants to check the behaviour of the command when these variables are not set, but the later tests should have the reliable committer identity for repeatable tests. Move the "unset" of the variables inside a subshell in the test that wants to unset them. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03cat-file --batch: flush stdout also when objects are missingLibravatar Lea Wiemann1-0/+1
cat-file --batch/--batch-check only flushes stdout when the object exists, but not when it doesn't ("<object> missing"). This makes bidirectional pipes hang. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03GIT v1.5.6-rc1Libravatar Junio C Hamano1-1/+5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-02commit: drop duplicated parentsLibravatar Junio C Hamano2-0/+23
The scripted version of git-commit internally used git-commit-tree which omitted duplicated parents given from the command line. This prevented a nonsensical octopus merge from getting created even when you said "git merge A B" while you are already on branch A. However, when git-commit was rewritten in C, this sanity check was lost. This resurrects it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-02rebase --interactive: Compute upstream SHA1 before switching branchesLibravatar Johannes Sixt1-4/+3
If the upstream argument to rebase (the first argument) was relative to HEAD and the name of the branch to rebase (the second argument) was given, the upstream would have been interpreted relative to the second argument. In particular, this command git rebase -i HEAD topic would always finish with "Nothing to do". (a1bf91e fixed the same issue for non-interactive rebase.) Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-02Documentation/git-filter-branch.txt: Fix description of --commit-filterLibravatar Kevin Ballard1-1/+1
The old description was misleading and logically impossible. It claimed that the ancestors of the original commit would be re-written to have the multiple emitted ids as parents. Not only would this modify existing objects, but it would create a cycle. What this actually does is pass the multiple emitted ids to the newly-created children to use as parents. Signed-off-by: Kevin Ballard <kevin@sb.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-02gitweb: Fix "next" link on bottom of pageLibravatar Jakub Narebski1-8/+5
Fix search form generation to not modify $cgi->param(...)'s. In git_header_html() we used to use $cgi->hidden(-name => "a") etc. to generate hidden fields; unfortunately to use this form it is required to modify $cgi->param("a") etc., which makes href(-replay,...) use wrong replay values. This for example made the "next" link on the bottom of the page has a=search instead of a=$action, and thus fails to get you to the next page. Because in CGI the value of a hidden field is "sticky", there is no way to modify it short of modifying $cgi->param(...). Therefore it got replaced by generating <input type="hidden" ...> element [semi] directly. Alternate solution would be for href(-replay,...) to use values saved in global variables, such as $action etc., instead of (re)reading them from $cgi->param($symbol). The bad link was reported by Kai Blin through http://bugs.debian.org/481902 Reported-by: Kai Blin <kai.blin@gmail.com> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Tested-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-02Revert "git.el: Set process-environment instead of invoking env"Libravatar Karl Hasselström1-4/+7
This reverts commit dbe48256b41c1e94d81f2458d7e84b1fdcb47026, which caused mis-encoding of non-ASCII author/committer names when the git-status mode is used to create commits. Signed-off-by: Karl Hasselström <kha@treskal.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Merge branch 'sb/am-tests'Libravatar Junio C Hamano2-72/+260
* sb/am-tests: Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.sh Add test cases for git-am
2008-06-01Merge branch 'lw/test-fix'Libravatar Junio C Hamano1-1/+3
* lw/test-fix: t/test-lib.sh: resolve symlinks in working directory, for pathname comparisons
2008-06-01Merge branch 'sp/remote'Libravatar Junio C Hamano2-36/+74
* sp/remote: Make "git-remote rm" delete refs acccording to fetch specs Make "git-remote prune" delete refs according to fetch specs Remove unused remote_prefix member in builtin-remote
2008-06-01Merge branch 'lt/pack-sync'Libravatar Junio C Hamano11-10/+26
* lt/pack-sync: Remove now unnecessary 'sync()' calls Make pack creation always fsync() the result
2008-06-01Merge branch 'np/pack-check'Libravatar Junio C Hamano1-28/+27
* np/pack-check: make verify-pack a bit more useful with bad packs
2008-06-01make verify-pack a bit more useful with bad packsLibravatar Nicolas Pitre1-28/+27
When a pack gets corrupted, its SHA1 checksum will fail. However, this is more useful to let the test go on in order to find the actual problem location than only complain about the SHA1 mismatch and bail out. Also, it is more useful to compare the stored pack SHA1 with the one in the index file instead of the computed SHA1 since the computed SHA1 from a corrupted pack won't match the one stored in the index either. Finally a few code and message cleanups were thrown in as a bonus. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Merge branch 'jb/reset-q'Libravatar Junio C Hamano1-4/+5
* jb/reset-q: git-reset: honor -q and do not show progress message
2008-06-01Merge branch 'jc/checkout'Libravatar Junio C Hamano2-42/+43
* 'jc/checkout': checkout: "best effort" checkout unpack_trees(): allow callers to differentiate worktree errors from merge errors checkout: consolidate reset_{to_new,clean_to_new}() checkout: make reset_clean_to_new() not die by itself
2008-06-01Merge branch 'lr/init-bare'Libravatar Junio C Hamano3-3/+24
* lr/init-bare: git-init: accept --bare option
2008-06-01Git.pm: fix return value of config methodLibravatar Lea Wiemann1-1/+1
If config is called in array context, it is supposed to return all values set for the given option key. This works for all cases except if there is no value set at all. In that case, it wrongly returns (undef) instead of (). This fixes the return statement so that it returns undef in scalar context but an empty array in array context. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01glossary: improve a few linksLibravatar Lea Wiemann1-7/+7
They now point to more specific/appropriate targets. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Documentation: convert "glossary" and "core-tutorial" to man pagesLibravatar Christian Couder9-20/+75
This patch renames the following documents and at the same time converts them to the man format: core-tutorial.txt -> gitcore-tutorial.txt glossary.txt -> gitglossary.txt But as the glossary is included in the user manual and as the new gitglossary man page cannot be included as a whole in the user manual, the actual glossary content is now in its own "glossary-content.txt" new file. And this file is included by both the user manual and the gitglossary man page. Other documents that reference the above ones are changed accordingly and sometimes improved a little too. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Git.pm: fix documentation of hash_objectLibravatar Lea Wiemann1-3/+2
The documentation of hash_object incorrectly states that it accepts a file handle -- in fact it doesn't, and there is even a TODO comment for this. This fixes the documentation. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01graph API: avoid printing unnecessary padding before some octopus mergesLibravatar Adam Simpkins1-5/+8
When an octopus merge is printed, several lines are printed before it to move over existing branch lines to its right. This is needed to make room for the children of the octopus merge. For example: | | | | | | \ \ | | \ \ | | \ \ | M---. \ \ | |\ \ \ \ \ However, this step isn't necessary if there are no branch lines to the right of the octopus merge. Therefore, skip this step when it is not needed, to avoid printing extra lines that don't really serve any purpose. Signed-off-by: Adam Simpkins <adam@adamsimpkins.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01graph API: improve display of merge commitsLibravatar Adam Simpkins1-17/+93
This change improves the way merge commits are displayed, to eliminate a few visual artifacts. Previously, merge commits were displayed as: | M \ | |\ | As pointed out by Teemu Likonen, this didn't look nice if the rightmost branch line was displayed as '\' on the previous line, as it then appeared to have an extra space in it: | |\ | M \ | |\ | This change updates the code so that branch lines to the right of merge commits are printed slightly differently depending on how the previous line was displayed: | |\ | | | | | / | M \ | M | | M | | |\ \ | |\ \ | |\ \ Signed-off-by: Adam Simpkins <adam@adamsimpkins.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01git-svn fails in prop_walk if $self->{path} is not emptyLibravatar Christian Engwer1-1/+1
If url://repo/trunk is the current Git branch, prop_walk strips trunk from the path name. That is useful as, for example "git svn show-ignore" should not return results like trunk/foo but foo if svn:ignore for trunk includes foo. The problem now is that prop_walk strips trunk from the path and then calls itself recursively. But now trunk is missing in the path and get_dir fails, because it is called for a non existing path. The attached patch fixed the problem, by adding the previously stipped $self->{path} in the recursive call. I tested it with my current git-svn repository for the commands show-ignore and show-external. Patch was submitted through http://bugs.debian.org/477393 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Add a --dry-run option to git-svn rebaseLibravatar Seth Falcon2-2/+12
When working with multiple branches in an svn repository, it can be useful to verify the svn repository and local tracking branch that will be used for the rebase operation. Signed-off-by: Seth Falcon <seth@userprimary.net> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-01Fix path duplication in git svn commit-diffLibravatar Karl Hasselström1-2/+1
Given an SVN repo file:///tmp/svntest/repo, trying to commit changes to a file proj/trunk/foo.txt in that repo with this command line git svn commit-diff -r2 HEAD^ HEAD file:///tmp/svntest/repo/proj/trunk gave the error message Filesystem has no item: File not found: transaction '2-6', path '/proj/trunk/proj/trunk/foo.txt' This fixes the duplication. 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>
2008-05-31Make "git-remote rm" delete refs acccording to fetch specsLibravatar Shawn O. Pearce1-14/+54
A remote may be configured to fetch into tracking branches that don't match its name. A user may have created a remote by hand that will fetch to a different tracking branch namespace: [remote "alt"] url = git://repo.or.cz/alt-git.git fetch = refs/heads/*:refs/remotes/origin/* When deleting remote alt we should clean up the refs whose names start with "refs/remotes/origin/", even though the remote itself was named alt by the user. To avoid deleting refs used by another remote we only clear refs that are unique to this remote. This prevents `git prune rm alt` from removing the refs used by say origin if alt was just using a different URL for the same repository. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Make "git-remote prune" delete refs according to fetch specsLibravatar Shawn O. Pearce2-19/+20
A remote may be configured to fetch into tracking branches that do not match the remote name. For example a user may have created extra remotes that will fetch to the same tracking branch namespace, but from different URLs: [remote "origin"] url = git://git.kernel.org/pub/scm/git/git.git fetch = refs/heads/*:refs/remotes/origin/* [remote "alt"] url = git://repo.or.cz/alt-git.git fetch = refs/heads/*:refs/remotes/origin/* When running `git remote prune alt` we expect stale branches to be removed from "refs/remotes/origin/*" and not from the unused namespace of "refs/remotes/alt/*". Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Remove unused remote_prefix member in builtin-remoteLibravatar Shawn O. Pearce1-3/+0
Not sure when this became unused, but no code references it, other than to populate the strbuf with an initial value. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31t/test-lib.sh: resolve symlinks in working directory, for pathname comparisonsLibravatar Lea Wiemann1-1/+3
Without this, some tests will fail because they compare command output of subprocesses (such as git) with $PWD -- but subprocesses have the physical path as their working directory, whereas $PWD contains the symlinked path. This fixes it. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31git-reset: honor -q and do not show progress messageLibravatar Jamis Buck1-4/+5
When running git-reset in a non-interactive setting, the -q switch works for everything except the progress updates. This squelches it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.shLibravatar Stephan Beyer2-72/+34
This patch moves the am test cases in t4150-am.sh and the am subdirectory test cases from t/t4150-am-subdir.sh into t/4151-am.sh. Signed-off-by: Stephan Beyer <s-beyer@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Add test cases for git-amLibravatar Stephan Beyer1-0/+226
Add t/t4151-am.sh that does basic testing of git-am functionality, including: * am applies patch correctly * am changes committer and keeps author * am --signoff adds Signed-off-by: line * am stays in branch * am --signoff does not add Signed-off-by: line if already there * am without --keep removes Re: and [PATCH] stuff * am --keep really keeps the subject * am -3 falls back to 3-way merge * am pauses on conflict * am --skip works * am --resolved works * am takes patches from a Pine mailbox * am fails on mail without patch * am fails on empty patch Signed-off-by: Stephan Beyer <s-beyer@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Remove now unnecessary 'sync()' callsLibravatar Linus Torvalds4-6/+4
Since the pack-files are now always created stably on disk, there is no need to sync() before pruning lose objects or old stale pack-files. [jc: with Nico's clean-up] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Make pack creation always fsync() the resultLibravatar Linus Torvalds8-6/+24
This means that we can depend on packs always being stable on disk, simplifying a lot of the object serialization worries. And unlike loose objects, serializing pack creation IO isn't going to be a performance killer. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Clarify description of <repository> argument to pull/fetch for naming remotes.Libravatar John J. Franey2-34/+63
Alter the description of <repository> in OPTIONS section to explicitly state that a 'remote name' is accepted. Rewrite REMOTES section to more directly identify the different kinds of remote-name permitted. Signed-off-by: John J. Franey <jjfraney@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31rollback lock files on more signals than just SIGINTLibravatar Paolo Bonzini3-0/+18
Other signals are also common, for example SIGTERM and SIGHUP. This patch modifies the lock file mechanism to catch more signals. It also modifies http-push.c which was missing SIGTERM. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Revision walking documentation: document most important functionsLibravatar Miklos Vajna1-1/+59
Unfortunately the list is not complete, but includes the essential ones. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31gitweb: Remove gitweb/test/ directoryLibravatar Jakub Narebski3-12/+0
Testing if gitweb handles filenames with spaces, filenames with plus sign ('+') which encodes spaces in CGI parameters (in URLs), and filenames with Unicode characters should be handled by gitweb tests. Those files are remainder of the time when gitweb was project on its own, not a part of git (with its testsuite). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Add shortcut in refresh_cache_ent() for marked entries.Libravatar Marius Storm-Olsen1-0/+9
When a cache entry has been marked as CE_VALID, the user has promised us that any change in the work tree does not matter. Just mark the entry as up-to-date, and continue. Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-31Clearify the documentation for core.ignoreStatLibravatar Marius Storm-Olsen1-4/+7
The previous documentation didn't make it clear that the "assume unchanged" was on per file basis, and not a global flag. Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-29checkout: "best effort" checkoutLibravatar Junio C Hamano1-4/+18
When unpack_trees() returned an error while switching branches, we used to stop right there, exiting without writing the index out or switching HEAD. This is Ok when unpack_trees() returned an error because it detected untracked files or locally modified paths that could be overwritten by branch switching, because that error return is done before we start to modify the work tree. But it is undesirable if unpack_trees() already started to update the work tree and a failure is returned because some but not all paths are updated in the work tree, perhaps because a directory that some files need to go in was read-only by mistake, or a file that will be overwritten by branch switching had a mandatory lock on it and we failed to unlink it. This changes the behaviour upon such an error to complete the branch switching; the files updated in the work tree will hopefully be much more consistent with the index and HEAD derived from the switched-to branch. We still issue error messages, and exit the command with non-zero status, so scripted callers need to notice it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-29unpack_trees(): allow callers to differentiate worktree errors from merge errorsLibravatar Junio C Hamano1-3/+7
Instead of uniformly returning -1 on any error, this teaches unpack_trees() to return -2 when the merge itself is Ok but worktree refuses to get updated. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-29checkout: consolidate reset_{to_new,clean_to_new}()Libravatar Junio C Hamano1-35/+15
These two were very similar functions with only tiny bit of difference. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-28git-init: accept --bare optionLibravatar Luciano Rocha3-3/+24
It is unfortunate that "git init --bare" does not work and the only reason why "init" did not learn its own "--bare" option is because "git --bare init" already does the job (and as an option to the git 'potty', it is more generic solution). This teaches "git init" its own "--bare" option, so that both "git --bare init" and "git init --bare" works mostly the same way. [jc: rewrote the log message and added test] Signed-off-by: Luciano Rocha <strange@nsk.pt> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-28checkout: make reset_clean_to_new() not die by itselfLibravatar Junio C Hamano1-3/+6
Instead, have its error percolate up through the callchain and let it be the exit status of the main command. No semantic changes yet. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-28"git checkout -- paths..." should error out when paths cannot be writtenLibravatar Junio C Hamano1-2/+5
When "git checkout -- paths..." cannot update work tree for whatever reason, checkout_entry() correctly issued an error message for the path to the end user, but the command ignored the error, causing the entire command to succeed. This fixes it. Signed-off-by: Junio C Hamano <gitster@pobox.com>