aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Rename submodule.<name>.rebase to submodule.<name>.updateJohan Herland2009-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The addition of "submodule.<name>.rebase" demonstrates the usefulness of alternatives to the default behaviour of "git submodule update". However, by naming the config variable "submodule.<name>.rebase", and making it a boolean choice, we are artificially constraining future git versions that may want to add _more_ alternatives than just "rebase". Therefore, while "submodule.<name>.rebase" is not yet in a stable git release, future-proof it, by changing it from submodule.<name>.rebase = true/false to submodule.<name>.update = rebase/checkout where "checkout" specifies the default behaviour of "git submodule update" (checking out the new commit to a detached HEAD), and "rebase" specifies the --rebase behaviour (where the current local branch in the submodule is rebase onto the new commit). Thus .update == checkout is equivalent to .rebase == false, and .update == rebase is equivalent to .rebase == true. Finally, leaving .update unset is equivalent to leaving .rebase unset. In future git versions, other alternatives to "git submodule update" behaviour can be included by adding them to the list of allowable values for the submodule.<name>.update variable. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-submodule: add support for --rebase.Peter Hutterer2009-04-24
| | | | | | | | | | | | | | | | | 'git submodule update --rebase' rebases your local branch on top of what would have been checked out to a detached HEAD otherwise. In some cases, detaching the HEAD when updating a submodule complicates the workflow to commit to this submodule (checkout master, rebase, then commit). For submodules that require frequent updates but infrequent (if any) commits, a rebase can be executed directly by the git-submodule command, ensuring that the submodules stay on their respective branches. git-config key: submodule.$name.rebase (bool) Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'jc/maint-read-tree-multi'Junio C Hamano2009-04-22
|\ | | | | | | | | | | | | | | * jc/maint-read-tree-multi: checkout branch: prime cache-tree fully read-tree -m A B: prime cache-tree from the switched-to tree Move prime_cache_tree() to cache-tree.c read-tree A B: do not corrupt cache-tree
| * checkout branch: prime cache-tree fullyJunio C Hamano2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | When switching to another branch, the earlier code relied on incremental invalidation of cache-tree entries to degrade it. While it is not wrong per-se, we know that the resulting index must fully match the branch we are switching to unless the -m (merge) option is used. We should simply fully re-prime the cache-tree using the new tree object in such a case. And for safety, invalidate the cache-tree as a whole in other cases. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * read-tree -m A B: prime cache-tree from the switched-to treeJunio C Hamano2009-04-20
| | | | | | | | | | | | | | When switching to a new branch with "read-tree -m A B", the resulting index must match tree B and we can prime the cache tree with it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Move prime_cache_tree() to cache-tree.cJunio C Hamano2009-04-20
| | | | | | | | | | | | The interface to build cache-tree belongs there. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * read-tree A B: do not corrupt cache-treeJunio C Hamano2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An earlier commit aab3b9a (read-tree A B C: do not create a bogus index and do not segfault, 2009-03-12) resurrected the support for an obscure (but useful) feature to read and overlay more than one tree into the index without the -m (merge) option. But the fix was not enough. Exercising this feature exposes a longstanding bug in the code that primes the cache-tree in the index from the tree that was read. The intention was that when we know that the index must exactly match the tree we just read, we prime the entire cache-tree with it. However, the logic to detect that case incorrectly triggered if you read two trees without -m. This resulted in a corrupted cache-tree, and write-tree would have produced an incorrect tree object out of such an index. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Add parsing of elm aliases to git-send-emailBill Pemberton2009-04-22
| | | | | | | | | | | | | | | | | | | | elm stores a text file version of the aliases that is <alias> = <comment> = <email address> This adds the parsing of this file to git-send-email Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Convert to use quiet option when availableDan Loewenherz2009-04-22
| | | | | | | | | | | | | | | | A minor fix that eliminates usage of "2>/dev/null" when --quiet or -q has already been implemented. Signed-off-by: Dan Loewenherz <daniel.loewenherz@yale.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix more typos/spelling in commentsMichael J Gruber2009-04-22
| | | | | | | | | | | | | | A few more fixes on top of the automatic spell checker generated ones. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix typos / spelling in commentsMike Ralphson2009-04-22
| | | | | | | | | | Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Documentation: git-svn: fix a grammatical error without awkwardnessWesley J. Landaker2009-04-22
| | | | | | | | | | | | | | | | | | | | | | The way the sentence is currently written, there needs to be an "its", but this leads to: "however the remote wildcard may be anywhere as long as it's its own" which is awkward to read. Instead, this patch fixes he grammar in a simpler way. Signed-off-by: Wesley J. Landaker <wjl@icecavern.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Documentation: git-svn: fix spurious bolding that mangles the outputWesley J. Landaker2009-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Without this fix, the output looks like: "Keep in mind that the (asterisk) wildcard of the local ref (right of the :) *must be the ..." -- with half the sentence spuriously bold. This fixes the problem by simply escaping asciidoc syntax as suggested by Jeff King <peff@peff.net>. Signed-off-by: Wesley J. Landaker <wjl@icecavern.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Wait for git diff to finish in git difftoolAlex Riesen2009-04-22
| | | | | | | | | | | | | | | | | | | | In ActivetState Perl, exec does not wait for the started program. This breaks difftool tests and may cause unexpected behaviour: git difftool has returned, but the rest of code (diff and possibly the interactive program are still running in the background. Acked-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | graph API: fix a bug in the rendering of octopus mergesAllan Caffee2009-04-22
| | | | | | | | | | | | | | | | An off by one error was causing octopus merges with 3 parents to not be rendered correctly. This regression was introduced by 427fc5. Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | graph API: fix extra space during pre_commit_line stateAllan Caffee2009-04-22
| | | | | | | | | | | | | | | | | | An extra space is being inserted between the "commit" column and all of the successive edges. Remove this space. This regression was introduced by 427fc5b. Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t4202-log: extend test coverage of graphingAllan Caffee2009-04-22
| | | | | | | | | | | | | | | | Extend this test to cover the rendering of graphs with octopus merges and pre_commit lines. Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Revert "stat_tracking_info(): only count real commits"Junio C Hamano2009-04-21
| | | | | | | | | | This reverts commit 19de5d6913b9681d2bde533bccc8445c9236a648. It produces a misleading output to decide if a merge can fast-forward.
* | test-lib.sh: Help test_create_repo() find the templates dirMichael J Gruber2009-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, test_create_repo() expects that templates can be found below `pwd`/.. This assumption fails when tests are run against a git installed somewhere else or test_create_repo() is called from subdirectiories (several tests do this). Therefore, use $TEST_DIRECTORY as introduced in 2d84e9fb and expect templates to be present in $TEST_DIRECTORY/.. which should be the root dir of the git checkout. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'mk/maint-apply-swap'Junio C Hamano2009-04-21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | * mk/maint-apply-swap: tests: make test-apply-criss-cross-rename more robust builtin-apply: keep information about files to be deleted tests: test applying criss-cross rename patch Conflicts: t/t4130-apply-criss-cross-rename.sh
| * | tests: make test-apply-criss-cross-rename more robustMichał Kiedrowicz2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | I realized that this test does check if git-apply succeeds, but doesn't tell if it applies patches correctly. So I added test_cmp to check it. I also added a test which checks swapping three files. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | builtin-apply: keep information about files to be deletedMichał Kiedrowicz2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example correct diff generated by `diff -M -B' might look like this: diff --git a/file1 b/file2 similarity index 100% rename from file1 rename to file2 diff --git a/file2 b/file1 similarity index 100% rename from file2 rename to file1 Information about removing `file2' comes after information about creation of new `file2' (renamed from `file1'). Existing implementation isn't able to apply such patch, because it has to know in advance which files will be removed. This patch populates fn_table with information about removal of files before calling check_patch() for each patch to be applied. Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | tests: test applying criss-cross rename patchMichał Kiedrowicz2009-04-20
| |/ | | | | | | | | | | | | Originally reported by Linus in $gmane/116198 Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint'Junio C Hamano2009-04-21
|\ \ | | | | | | | | | | | | | | | * maint: gitcvs-migration: Link to git-cvsimport documentation Fix off-by-one in read_tree_recursive
| * | gitcvs-migration: Link to git-cvsimport documentationFrank Lichtenheld2009-04-20
| | | | | | | | | | | | | | | Signed-off-by: Frank Lichtenheld <flichtenheld@astaro.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Fix off-by-one in read_tree_recursiveJohannes Schindelin2009-04-20
| |/ | | | | | | | | | | | | Found by valgrind. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | grep: don't support "grep.color"-like config optionsMarkus Heidelberg2009-04-20
| | | | | | | | | | | | | | | | | | | | color.grep and color.grep.* is the official and documented way to highlight grep matches. Comparable options like diff.color.* and status.color.* exist for backward compatibility reasons only and are not documented any more. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Documentation: fix typos / spelling mistakesMike Ralphson2009-04-20
| | | | | | | | | | Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | builtin-remote: fix typo in option descriptionMike Ralphson2009-04-20
| | | | | | | | | | Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | clone: add test for push on an empty clone.Matthieu Moy2009-04-20
| | | | | | | | | | | | | | | | | | Commit 55f0566 (get_local_heads(): do not return random pointer if there is no head, 2009-04-17) fixed a segfault for git push, this patch adds a test-case to avoid future regressions. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Windows: Skip fstat/lstat optimization in write_entry()Johannes Sixt2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit e4c72923 (write_entry(): use fstat() instead of lstat() when file is open, 2009-02-09) introduced an optimization of write_entry(). Unfortunately, we cannot take advantage of this optimization on Windows because there is no guarantee that the time stamps are updated before the file is closed: "The only guarantee about a file timestamp is that the file time is correctly reflected when the handle that makes the change is closed." (http://msdn.microsoft.com/en-us/library/ms724290(VS.85).aspx) The failure of this optimization on Windows can be observed most easily by running a 'git checkout' that has to update several large files. In this case, 'git checkout' will report modified files, but infact only the timestamps were incorrectly recorded in the index, as can be verified by a subsequent 'git diff', which shows no change. Dmitry Potapov reports the same fix needs on Cygwin; this commit contains his updates for that. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Windows: Work around intermittent failures in mingw_renameJohannes Sixt2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have replaced rename() with a version that can rename a file to a destination that already exists. Nevertheless, many users, the author included, observe failures in the code that are not reproducible. The theory is that the failures are due to some other process that happens to have opened the destination file briefly at the wrong moment. (And there is no way on Windows to delete or replace a file that is currently open.) The most likely candidate for such a process is a virus scanner. The failure is more often observed while there is heavy git activity (for example while the test suite is running or during a rebase operation). We work around the failure by retrying the rename operation if it failed due to ERROR_ACCESS_DENIED. The retries are delayed a bit: The first only by giving up the time slice, the next after the minimal scheduling granularity, and if more retries are needed, then we wait some non-trivial amount of time with exponential back-off. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | gitweb: Fix snapshots requested via PATH_INFOHolger Weiß2009-04-20
| | | | | | | | | | | | | | | | | | | | Fix the detection of the requested snapshot format, which failed for PATH_INFO URLs since the references to the hashes which describe the supported snapshot formats weren't dereferenced appropriately. Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'mm/maint-add-p-quit'Junio C Hamano2009-04-20
|\ \ | | | | | | | | | | | | * mm/maint-add-p-quit: git add -p: add missing "q" to patch prompt
| * | git add -p: add missing "q" to patch promptWincent Colaiuta2009-04-20
| | | | | | | | | | | | | | | | | | | | | | | | Commit cbd3a01 added a new "q" subcommand to the "git add -p" command loop, but forgot to add it to the prompt. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Sync with 1.6.2.4Junio C Hamano2009-04-19
|\ \ \ | | |/ | |/| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | GIT 1.6.2.4v1.6.2.4Junio C Hamano2009-04-19
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Makefile: remove {fetch,send}-pack from PROGRAMS as they are builtinsNguyễn Thái Ngọc Duy2009-04-19
| | | | | | | | | | | | | | | Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Merge branch 'ef/maint-fast-export' into maintJunio C Hamano2009-04-19
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ef/maint-fast-export: builtin-fast-export.c: handle nested tags builtin-fast-export.c: fix crash on tagged trees builtin-fast-export.c: turn error into warning test-suite: adding a test for fast-export with tag variants
| | * | builtin-fast-export.c: handle nested tagsErik Faye-Lund2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When tags that points to tags are passed to fast-export, an error is given, saying "Tag [TAGNAME] points nowhere?". This fix calls parse_object() on the object before referencing it's tag, to ensure the tag-info is fully initialized. In addition, it inserts a comment to point out where nested tags are handled. This is consistent with the comment for signed tags. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | builtin-fast-export.c: fix crash on tagged treesErik Faye-Lund2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a tag object points to a tree (or another unhandled type), the commit- pointer is left uninitialized and later dereferenced. This patch adds a default case to the switch that issues a warning and skips the object. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | builtin-fast-export.c: turn error into warningErik Faye-Lund2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fast-import doesn't have a syntax to support tree-objects (and some other object-types), so fast-export shouldn't handle them. However, aborting the operation is a bit drastic. This patch turns the error into a warning instead. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | test-suite: adding a test for fast-export with tag variantsErik Faye-Lund2009-04-19
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | Merge branch 'mm/maint-add-p-quit' into maintJunio C Hamano2009-04-19
| |\ \ \ | | | |/ | | |/| | | | | | | | | | | | | | | | | * mm/maint-add-p-quit: Update git-add.txt according to the new possibilities of 'git add -p'. add-interactive: refactor mode hunk handling git add -p: new "quit" command at the prompt.
| | * | Update git-add.txt according to the new possibilities of 'git add -p'.Matthieu Moy2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The text is merely cut-and-pasted from git-add--interactive.perl. The cut-and-paste also fixes a typo. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | add-interactive: refactor mode hunk handlingJeff King2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original implementation considered the mode separately from the rest of the hunks, asking about it outside the main hunk-selection loop. This patch instead places a mode change as the first hunk in the loop. This has two advantages: 1. less duplicated code (since we use the main selection loop). This also cleans up an inconsistency, which is that the main selection loop separates options with a comma, whereas the mode prompt used slashes. 2. users can now skip the mode change and come back to it, search for it (via "/mode"), etc, as they can with other hunks. To facilitate this, each hunk is now marked with a "type". Mode hunks are not considered for splitting (which would make no sense, and also confuses the split_hunk function), nor are they editable. In theory, one could edit the mode lines and change to a new mode. In practice, there are only two modes that git cares about (0644 and 0755), so either you want to move from one to the other or not (and you can do that by staging or not staging). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | git add -p: new "quit" command at the prompt.Matthieu Moy2009-04-19
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | There's already 'd' to stop staging hunks in a file, but no explicit command to stop the interactive staging (for the current files and the remaining ones). Of course you can do 'd' and then ^C, but it would be more intuitive to allow 'quit' action. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Merge branch 'lt/maint-reflog-expire' into maintJunio C Hamano2009-04-19
| |\ \ | | | | | | | | | | | | | | | | | | | | * lt/maint-reflog-expire: Speed up reflog pruning of unreachable commits Clean up reflog unreachability pruning decision
| | * | Speed up reflog pruning of unreachable commitsJunio Hamano2009-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of doing the (potentially very expensive) "in_merge_base()" check for each commit that might be pruned if it is unreachable, do a preparatory reachability graph of the commit space, so that the common case of being reachable can be tested directly. [ Cleaned up a bit and tweaked to actually work. - Linus ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| | * | Clean up reflog unreachability pruning decisionLinus Torvalds2009-04-19
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This clarifies the pruning rules for unreachable commits by having a separate helpder function for the unreachability decision. It's preparation for actual bigger changes to come to speed up the decision when the reachability calculations become a bottleneck. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>