aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* git-bundle: avoid packing objects which are in the prerequisitesJohannes Schindelin2007-03-07
| | | | | | | | | | | | When saying something like "--since=1.day.ago" or "--max-count=5", git-bundle finds the boundary commits which are recorded as prerequisites. However, it failed to tell pack-objects _not_ to pack the objects which are in these. Fix that. And add a test for that. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* bundle: fix wrong check of read_header()'s return value & add testsJohannes Schindelin2007-03-06
| | | | | | | | | | | | If read_header() fails, it returns <0, not 0. Further, an open(/dev/null) was not checked for errors. Also, this adds two tests to make sure that the bundle file looks correct, by checking if it has the header has the expected form, and that the pack contains the right amount of objects. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* revision --boundary: fix uncounted case.Junio C Hamano2007-03-06
| | | | | | | | When the list is truly limited and get_revision_1() returned NULL, the code incorrectly returned it without switching to boundary emiting mode. Silly. Signed-off-by: Junio C Hamano <junkio@cox.net>
* revision --boundary: fix stupid typoJunio C Hamano2007-03-06
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-bundle: make verify a bit more chatty.Junio C Hamano2007-03-06
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* revision traversal: SHOWN means shownJunio C Hamano2007-03-06
| | | | | | | | | | This moves the code to set SHOWN on the commit from get_revision_1() back to get_revision(), so that the bit means what it originally meant: this commit has been given back to the caller. Also it fixes the --reverse breakage Dscho pointed out. Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-bundle: various fixupsJunio C Hamano2007-03-06
| | | | | | | | | | | | | | | verify_bundle() returned with an error early only when all prerequisite commits were missing. It should error out much earlier when some are missing. When the rev-list is limited in ways other than revision range (e.g. --max-count or --max-age), create_bundle() listed all positive refs given from the command line as if they are available, but resulting pack may not have some of them. Add a logic to make sure all of them are included, and error out otherwise. Signed-off-by: Junio C Hamano <junkio@cox.net>
* revision traversal: retire BOUNDARY_SHOWJunio C Hamano2007-03-06
| | | | | | | | | | | This removes the flag internally used by revision traversal to decide which commits are indeed boundaries and renames it to CHILD_SHOWN. builtin-bundle uses the symbol for its verification, but I think the logic it uses it is wrong. The flag is still useful but it is local to the git-bundle, so it is renamed to PREREQ_MARK. Signed-off-by: Junio C Hamano <junkio@cox.net>
* revision walker: Fix --boundary when limitedJunio C Hamano2007-03-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cleans up the boundary processing in the commit walker. It - rips out the boundary logic from the commit walker. Placing "negative" commits in the revs->commits list was Ok if all we cared about "boundary" was the UNINTERESTING limiting case, but conceptually it was wrong. - makes get_revision_1() function to walk the commits and return the results as if there is no funny postprocessing flags such as --reverse, --skip nor --max-count. - makes get_revision() function the postprocessing phase: If reverse is given, wait for get_revision_1() to give everything that it would normally give, and then reverse it before consuming. If skip is given, skip that many before going further. If max is given, stop when we gave out that many. Now that we are about to return one positive commit, mark the parents of that commit to be potential boundaries before returning, iff we are doing the boundary processing. Return the commit. - After get_revision() finishes giving out all the positive commits, if we are doing the boundary processing, we look at the parents that we marked as potential boundaries earlier, see if they are really boundaries, and give them out. It loses more code than it adds, even when the new gc_boundary() function, which is purely for early optimization, is counted. Note that this patch is purely for eyeballing and discussion only. It breaks git-bundle's verify logic because the logic does not use BOUNDARY_SHOW flag for its internal computation anymore. After we correct it not to attempt to affect the boundary processing by setting the BOUNDARY_SHOW flag, we can remove BOUNDARY_SHOW from revision.h and use that bit assignment for the new CHILD_SHOWN flag. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'maint'Junio C Hamano2007-03-06
|\ | | | | | | | | | | | | | | | | * maint: git-gui: Make 'make' quieter by default git-gui: Remove unnecessary /dev/null redirection. git-gui: Don't create empty (same tree as parent) commits. git-gui: Add Reset to the Branch menu. git-gui: Relocate the menu/transport menu code.
| * Merge branch 'master' of git://repo.or.cz/git-gui into maintJunio C Hamano2007-03-06
| |\ | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://repo.or.cz/git-gui: git-gui: Make 'make' quieter by default git-gui: Remove unnecessary /dev/null redirection. git-gui: Don't create empty (same tree as parent) commits. git-gui: Add Reset to the Branch menu. git-gui: Relocate the menu/transport menu code.
| | * git-gui: Make 'make' quieter by defaultgitgui-0.6.3Shawn O. Pearce2007-03-06
| | | | | | | | | | | | | | | | | | | | | To fit nicely into the output of the git.git project's own quieter Makefile, we want to make the git-gui Makefile nice and quiet too. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| | * git-gui: Remove unnecessary /dev/null redirection.Shawn O. Pearce2007-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | Git 1.5.0 and later no longer output useless messages to standard error when making the initial (or what looks to be) commit of a repository. Since /dev/null does not exist on Windows in the MinGW environment we can't redirect there anyway. Since Git does not output anymore, I'm removing the redirection. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| | * git-gui: Don't create empty (same tree as parent) commits.gitgui-0.6.2Shawn O. Pearce2007-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mark Levedahl noticed that git-gui will let you create an empty normal (non-merge) commit if the file state in the index is out of whack. The case Mark was looking at was with the new autoCRLF feature in git enabled and is actually somewhat difficult to create. I found a different way to create an empty commit: turn on the Trust File Modifications flag, touch a file, rescan, then move the file into the "Changes To Be Committed" list without looking at the file's diff. This makes git-gui think there are files staged for commit, yet the update-index call did nothing other than refresh the stat information for the affected file. In this case git-gui allowed the user to make a commit that did not actually change anything in the repository. Creating empty commits is usually a pointless operation; rarely does it record useful information. More often than not an empty commit is actually an indication that the user did not properly update their index prior to commit. We should help the user out by detecting this possible mistake and guiding them through it, rather than blindly recording it. After we get the new tree name back from write-tree we compare it to the parent commit's tree; if they are the same string and this is a normal (non-merge, non-amend) commit then something fishy is going on. The user is making an empty commit, but they most likely don't want to do that. We now pop an informational dialog and start a rescan, aborting the commit. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| | * git-gui: Add Reset to the Branch menu.Shawn O. Pearce2007-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cehteh on #git noticed that there was no way to perform a reset --hard from within git-gui. When I pointed out this was Merge->Abort Merge cehteh said this is not very understandable, and that most users would never guess to try that option unless they were actually in a merge. So Branch->Reset is now also a way to cause a reset --hard from within the UI. Right now the confirmation dialog is the same as the one used in Merge->Abort Merge. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| | * git-gui: Relocate the menu/transport menu code.Shawn O. Pearce2007-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | This code doesn't belong down in the main window UI creation, its really part of the menu system and probably should be located with it. I'm moving it because I could not find the code when I was looking for it earlier today, as it was not where I expected it to be found. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | git-bundle: fix pack generation.Junio C Hamano2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | The handcrafted built-in rev-list lookalike forgot to mark the trees and blobs contained in the boundary commits uninteresting, resulting in unnecessary objects in the pack. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint'Junio C Hamano2007-03-05
|\ \ \ | |/ / | | | | | | | | | * maint: git-commit: cd to top before showing the final stat
| * | git-commit: cd to top before showing the final statJunio C Hamano2007-03-05
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| | |
| \ \
*-. \ \ Merge branch 'master-for-junio' of git://repo.or.cz/git/fastimport; branch ↵Junio C Hamano2007-03-05
|\ \ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'maint' * 'master-for-junio' of git://repo.or.cz/git/fastimport: fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset * maint: Fix diff-options references in git-diff and git-format-patch Add definition of <commit-ish> to the main git man page. Begin SubmittingPatches with a check list fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset
| | * | Fix diff-options references in git-diff and git-format-patchBrian Gernhardt2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the git-diff-* documentation used [<common diff options>] instead of [--diff-options], so make that change in git-diff and git-format-patch. In addition, git-format-patch didn't include the meanings of the diff options. Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| | * | Add definition of <commit-ish> to the main git man page.Theodore Ts'o2007-03-05
| | | | | | | | | | | | | | | | | | | | Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| | * | Merge branch 'maint-for-junio' of git://repo.or.cz/git/fastimport into maintJunio C Hamano2007-03-05
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | * 'maint-for-junio' of git://repo.or.cz/git/fastimport: fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset
| | * | | Begin SubmittingPatches with a check listJohannes Schindelin2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems that some people prefer a short list to a long text. But even for the latter group, a quick reminder list is useful. So, add a check list to Documentation/SubmittingPatches of what to do to get your patch accepted. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Merge branch 'maint'Shawn O. Pearce2007-03-05
| |\ \ \ \ |/ / / / / | | | _ / | | | / | | | | | | | | | | | | | | | | | | | | * maint: fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset [sp: Minor evil merge to deal with type_names array moving to be private in 'master'.]
| * | | fast-import: Fail if a non-existant commit is used for mergeShawn O. Pearce2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Johannes Sixt noticed during one of his own imports that fast-import did not fail if a non-existant commit is referenced by SHA-1 value as an argument to the 'merge' command. This allowed the user to unknowingly create commits that would fail in fsck, as the commit contents would not be completely reachable. A side effect of this bug was that a frontend process could mark any SHA-1 object (blob, tree, tag) as a parent of a merge commit. This should also fail in fsck, as the commit is not a valid commit. We now use the same rule as the 'from' command. If a commit is referenced in the 'merge' command by hex formatted SHA-1 then the SHA-1 must be a commit or a tag that can be peeled back to a commit, the commit must already exist, and must be readable by the core Git infrastructure code. This requirement means that the commit must have existed prior to fast-import starting, or the commit must have been flushed out by a prior 'checkpoint' command. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | fast-import: Avoid infinite loop after resetShawn O. Pearce2007-03-05
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Johannes Sixt noticed that a 'reset' command applied to a branch that is already active in the branch LRU cache can cause fast-import to relink the same branch into the LRU cache twice. This will cause the LRU cache to contain a cycle, making unload_one_branch run in an infinite loop as it tries to select the oldest branch for eviction. I have trivially fixed the problem by adding an active bit to each branch object; this bit indicates if the branch is already in the LRU and allows us to avoid trying to add it a second time. Converting the pack_id field into a bitfield makes this change take up no additional memory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | contrib/emacs: Use non-interactive function to byte-compile filesXavier Maillard2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add git-blame as a candidate to the byte-compilation. batch-byte-compile is the prefered way to byte-compile files in batch mode. Use it instead of the interactive function. Signed-off-by: Xavier Maillard <zedek@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | t/t5515-fetch-merge-logic.sh: Added tests for the merge login in git-fetchSanti Béjar2007-03-05
| | | | | | | | | | | | | | | Signed-off-by: Santi Béjar <sbejar@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Post 1.5.0.3 cleanupJunio C Hamano2007-03-04
| | | | | | | | | | | | | | | | | | | | | Update the main git.html page to point at 1.5.0.3 documentation. Update draft 1.5.1 release notes with what we have so far. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'js/fetch-progress' (early part)Junio C Hamano2007-03-04
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'js/fetch-progress' (early part): Fixup no-progress for fetch & clone fetch & clone: do not output progress when not on a tty Conflicts: git-fetch.sh
| * | | Fixup no-progress for fetch & cloneJohannes Schindelin2007-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intent of the commit 'fetch & clone: do not output progress when not on a tty' was to make fetching and cloning less chatty when output was not redirected (such as in a cron job). However, there was a serious thinko in that commit. It assumed that the client _and_ the server got this update at the same time. But this is obviously not the case, and therefore upload-pack died on seeing the option "--no-progress". This patch fixes that issue by making it a protocol option. So, until your server is updated, you still see the progress, but once the server has this patch, it will be quiet. A minor issue was also fixed: when cloning, the checkout did not heed no_progress. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | fetch & clone: do not output progress when not on a ttyJohannes Schindelin2007-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the option "--no-progress" to fetch-pack and upload-pack, and makes fetch and clone pass this option when stdout is not a tty. While at documenting that option, also document --strict and --timeout options for upload-pack. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'js/symlink'Junio C Hamano2007-03-04
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * js/symlink: Tell multi-parent diff about core.symlinks. Handle core.symlinks=false case in merge-recursive. Add core.symlinks to mark filesystems that do not support symbolic links.
| * | | | Tell multi-parent diff about core.symlinks.Johannes Sixt2007-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When core.symlinks is false, and a merge of symbolic links had conflicts, the merge result is left as a file in the working directory. A decision must be made whether the file is treated as a regular file or as a symbolic link. This patch treats the file as a symbolic link only if all merge parents were also symbolic links. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Handle core.symlinks=false case in merge-recursive.Johannes Sixt2007-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the file system does not support symbolic links (core.symlinks=false), merge-recursive must write the merged symbolic link text into a regular file. While we are here, fix a tiny memory leak in the if-branch that writes real symbolic links. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Add core.symlinks to mark filesystems that do not support symbolic links.Johannes Sixt2007-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some file systems that can host git repositories and their working copies do not support symbolic links. But then if the repository contains a symbolic link, it is impossible to check out the working copy. This patch enables partial support of symbolic links so that it is possible to check out a working copy on such a file system. A new flag core.symlinks (which is true by default) can be set to false to indicate that the filesystem does not support symbolic links. In this case, symbolic links that exist in the trees are checked out as small plain files, and checking in modifications of these files preserve the symlink property in the database (as long as an entry exists in the index). Of course, this does not magically make symbolic links work on such defective file systems; hence, this solution does not help if the working copy relies on that an entry is a real symbolic link. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'maint'Junio C Hamano2007-03-04
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: GIT 1.5.0.3 glossary: Add definitions for dangling and unreachable objects user-manual: more detailed merge discussion user-manual: how to replace commits older than most recent user-manual: insert earlier of mention content-addressable architecture user-manual: ensure generated manual references stylesheet user-manual: reset to ORIG_HEAD not HEAD to undo merge Documentation: mention module option to git-cvsimport
| * | | | GIT 1.5.0.3v1.5.0.3Junio C Hamano2007-03-04
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | glossary: Add definitions for dangling and unreachable objectsYasushi SHOJI2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define "dangling" and "unreachable" objects. Modified from original text proposed by Yasushi Shoji. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | user-manual: more detailed merge discussionJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add more details on conflict, including brief discussion of file stages. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | user-manual: how to replace commits older than most recentJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Modifying" an old commit by checking it out, --amend'ing it, then rebasing on top of it, is a slightly cumbersome technique, but I've found it useful frequently enough to make it seem worth documenting. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | user-manual: insert earlier of mention content-addressable architectureJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The content-addressable design is too important not to be worth at least a brief mention a little earlier on. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | user-manual: ensure generated manual references stylesheetJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generated user manual is rather hard to read thanks to the lack of the css that's supposed to be included from docbook-xsl.css. I'm totally ignorant of the toolchain; grubbing through xmlto and related scripts, the easiest way I could find to ensure that the generated html links to the stylesheet is by calling xsltproc directly. Maybe there's some better way. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | user-manual: reset to ORIG_HEAD not HEAD to undo mergeJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As Linus pointed out recently on the mailing list, git reset --hard HEAD^ doesn't undo a merge in the case where the merge did a fast-forward. So the rcommendation here is a little dangerous. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Documentation: mention module option to git-cvsimportJ. Bruce Fields2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The git-cvsimport argument that specifies a cvs module to import should probably be included in the default example. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-svn: fix show-ignore when not connected to the repository rootEric Wong2007-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was traversing the entire repository before. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | diff-ni: allow running from a subdirectory.Junio C Hamano2007-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When run from a subdirectory of a repository, the command forgot to adjust paths given to it with prefix. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'js/diff-ni' (early part)Junio C Hamano2007-03-03
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * 'js/diff-ni' (early part): diff: make more cases implicit --no-index
| * | | | | diff: make more cases implicit --no-indexJohannes Schindelin2007-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When specifying an absolute path, or a relative path pointing outside the working tree, do not fail, but roll your own diffopt parsing, and execute a --no-index diff. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>