summaryrefslogtreecommitdiff
path: root/t
AgeCommit message (Collapse)AuthorFilesLines
2007-12-10Interactive editor tests for commit-msg hookLibravatar Wincent Colaiuta1-43/+175
Supplement the existing tests for the commit-msg hook (which all use "git commit -m") with tests which use an interactive editor (no -m switch) to ensure that all code paths get tested. At the same time the quoting of some of the existing tests is changed to conform to Junio's recommendations for test style (single quotes used around the test unless there is a compelling reason not to, and the opening quote on the same line as the test_expect and the closing quote in column 1). Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09Merge branch 'jc/spht'Libravatar Junio C Hamano2-0/+274
* jc/spht: Use gitattributes to define per-path whitespace rule core.whitespace: documentation updates. builtin-apply: teach whitespace_rules builtin-apply: rename "whitespace" variables and fix styles core.whitespace: add test for diff whitespace error highlighting git-diff: complain about >=8 consecutive spaces in initial indent War on whitespace: first, a bit of retreat. Conflicts: cache.h config.c diff.c
2007-12-09Add tests for pre-commit and commit-msg hooksLibravatar Wincent Colaiuta3-1/+153
As desired, these pass for git-commit.sh, fail for builtin-commit (prior to the fixes), and succeeded for builtin-commit (after the fixes). Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08add status.relativePaths config variableLibravatar Jeff King1-0/+31
The output of git-status was recently changed to output relative paths. Setting this variable to false restores the old behavior for any old-timers that prefer it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Merge branch 'jc/clean-fix'Libravatar Junio C Hamano1-0/+14
* jc/clean-fix: t7300: add test for clean with wildcard pathspec git-clean: Honor pathspec.
2007-12-06for-each-ref: Fix quoting style constants.Libravatar Johannes Sixt1-0/+39
for-each-ref can accept only one quoting style. For this reason it uses OPT_BIT for the quoting style switches so that it is easy to check for more than one bit being set. However, not all symbolic constants were actually single bit values. In particular: $ git for-each-ref --python error: more than one quoting style ? This fixes it. While we are here, let's also remove the space before the question mark. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Use gitattributes to define per-path whitespace ruleLibravatar Junio C Hamano2-1/+66
The `core.whitespace` configuration variable allows you to define what `diff` and `apply` should consider whitespace errors for all paths in the project (See gitlink:git-config[1]). This attribute gives you finer control per path. For example, if you have these in the .gitattributes: frotz whitespace nitfol -whitespace xyzzy whitespace=-trailing all types of whitespace problems known to git are noticed in path 'frotz' (i.e. diff shows them in diff.whitespace color, and apply warns about them), no whitespace problem is noticed in path 'nitfol', and the default types of whitespace problems except "trailing whitespace" are noticed for path 'xyzzy'. A project with mixed Python and C might want to have: *.c whitespace *.py whitespace=-indent-with-non-tab in its toplevel .gitattributes file. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05t7300: add test for clean with wildcard pathspecLibravatar Jeff King1-0/+14
Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Merge branch 'maint'Libravatar Junio C Hamano1-0/+46
* maint: git-am -i: report rewritten title git grep shows the same hit repeatedly for unmerged paths Do check_repository_format() early (re-fix) Do check_repository_format() early Add missing inside_work_tree setting in setup_git_directory_gently
2007-12-05Merge branch 'nd/maint-work-tree-fix' into maintLibravatar Junio C Hamano1-0/+46
* nd/maint-work-tree-fix: Do check_repository_format() early (re-fix) Do check_repository_format() early Add missing inside_work_tree setting in setup_git_directory_gently
2007-12-05Do check_repository_format() early (re-fix)Libravatar Nguyễn Thái Ngọc Duy1-0/+46
This pushes check_repository_format() (actually _gently() version) to setup_git_directory_gently() in order to prevent from using unsupported repositories. New setup_git_directory_gently()'s behaviour is stop searching for a valid gitdir and return as if there is no gitdir if a unsupported repository is found. Warning will be thrown in these cases. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-04t5510: add a bit more tests for fetchLibravatar Junio C Hamano1-0/+42
"git pull/fetch" that gets explicit refspecs from the command line should not update configured tracking refs. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-04Merge branch 'kh/commit'Libravatar Junio C Hamano6-3/+226
* kh/commit: (33 commits) git-commit --allow-empty git-commit: Allow to amend a merge commit that does not change the tree quote_path: fix collapsing of relative paths Make git status usage say git status instead of git commit Fix --signoff in builtin-commit differently. git-commit: clean up die messages Do not generate full commit log message if it is not going to be used Remove git-status from list of scripts as it is builtin Fix off-by-one error when truncating the diff out of the commit message. builtin-commit.c: export GIT_INDEX_FILE for launch_editor as well. Add a few more tests for git-commit builtin-commit: Include the diff in the commit message when verbose. builtin-commit: fix partial-commit support Fix add_files_to_cache() to take pathspec, not user specified list of files Export three helper functions from ls-files builtin-commit: run commit-msg hook with correct message file builtin-commit: do not color status output shown in the message template file_exists(): dangling symlinks do exist Replace "runstatus" with "status" in the tests t7501-commit: Add test for git commit <file> with dirty index. ...
2007-12-04Merge branch 'sp/refspec-match'Libravatar Junio C Hamano2-1/+53
* sp/refspec-match: refactor fetch's ref matching to use refname_match() push: use same rules as git-rev-parse to resolve refspecs add refname_match() push: support pushing HEAD to real branch name
2007-12-04Do not rely on the exit status of "unset" for unset variablesLibravatar H.Merijn Brand1-8/+8
POSIX says that exit status "0" means that "unset" successfully unset the variable. However, it is kind of ambiguous if an environment variable which was not set could be successfully unset. At least the default shell on HP-UX insists on reporting an error in such a case, so just ignore the exit status of "unset". [Dscho: extended the patch to git-submodule.sh, as Junio realized that this is the only other place where we check the exit status of "unset".] Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-04t9600: require cvsps 2.1 to perform testsLibravatar Jeff King1-2/+18
git-cvsimport won't run at all with less than cvsps 2.1, because it lacks the -A flag. But there's no point in preventing people who have an old cvsps from running the full testsuite. Tested-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-03fast-export: rename the signed tag mode 'ignore' to 'verbatim'Libravatar Johannes Schindelin1-2/+2
The name 'verbatim' describes much better what this mode does with signed tags. While at it, fix the documentation what it actually does. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-03git-commit --allow-emptyLibravatar Junio C Hamano1-0/+7
It does not usually make sense to record a commit that has the exact same tree as its sole parent commit and that is why git-commit prevents you from making such a mistake, but when data from foreign scm is involved, it is a different story. We are equipped to represent such an (perhaps insane, perhaps by mistake, or perhaps done on purpose) empty change, and it is better to represent it bypassing the safety valve for native use. This is primarily for use by foreign scm interface scripts. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-03git-commit: Allow to amend a merge commit that does not change the treeLibravatar Johannes Sixt1-0/+32
Normally, it should not be allowed to generate an empty commit. A merge commit generated with git 'merge -s ours' does not change the tree (along the first parent), but merges are not "empty" even if they do not change the tree. Hence, commit 8588452ceb7 allowed to amend a merge commit that does not change the tree, but 4fb5fd5d301 disallowed it again in an attempt to avoid that an existing commit is amended such that it becomes empty. With this change, a commit can be edited (create a new one or amend an existing one) either if there are changes or if there are at least two parents. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-02quote_path: fix collapsing of relative pathsLibravatar Jeff King1-1/+1
The code tries to collapse identical leading components between the prefix and the path. So if we're in "dir1", the path "dir1/file" should become just "file". However, we were ending up with "../dir1/file". The included test expected the wrong output. The "len" parameter to quote_path can be negative to mean "this is a NUL terminated string". Simply count it so that the loop can rely on it being the length of the path. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-02Merge branch 'js/prune-expire'Libravatar Junio C Hamano1-0/+18
* js/prune-expire: Add "--expire <time>" option to 'git prune'
2007-12-02Merge branch 'js/fast-export'Libravatar Junio C Hamano1-0/+123
* js/fast-export: Add 'git fast-export', the sister of 'git fast-import'
2007-12-02Merge branch 'js/pull-rebase'Libravatar Junio C Hamano1-0/+22
* js/pull-rebase: Teach 'git pull' about --rebase
2007-12-02Merge branch 'jc/typebreak'Libravatar Junio C Hamano2-3/+89
* jc/typebreak: Enable rewrite as well as rename detection in git-status rename: Break filepairs with different types.
2007-12-02Add 'git fast-export', the sister of 'git fast-import'Libravatar Johannes Schindelin1-0/+123
This program dumps (parts of) a git repository in the format that fast-import understands. For clarity's sake, it does not use the 'inline' method of specifying blobs in the commits, but builds the blobs before building the commits. Since signed tags' signatures will not necessarily be valid (think transformations after the export, or excluding revisions, changing the history), there are 4 modes to handle them: abort (default), ignore, warn and strip. The latter just turns the tags into unsigned ones. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-02Merge branch 'maint'Libravatar Junio C Hamano1-0/+12
* maint: t9600: test cvsimport from CVS working tree
2007-12-02t9600: test cvsimport from CVS working treeLibravatar Jeff King1-0/+12
This test passes with v1.5.3.7, but not with v1.5.3.6. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-02rename: Break filepairs with different types.Libravatar Junio C Hamano2-3/+89
When we consider if a path has been totally rewritten, we did not touch changes from symlinks to files or vice versa. But a change that modifies even the type of a blob surely should count as a complete rewrite. While we are at it, modernise diffcore-break to be aware of gitlinks (we do not want to touch them). Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-01Merge branch 'jc/branch-contains'Libravatar Junio C Hamano1-0/+58
* jc/branch-contains: git-branch --contains: doc and test git-branch --contains=commit parse-options: Allow to hide options from the default usage.
2007-12-01Merge branch 'cr/tag-options'Libravatar Junio C Hamano1-7/+17
* cr/tag-options: git-tag: test that -s implies an annotated tag "git-tag -s" should create a signed annotated tag builtin-tag: accept and process multiple -m just like git-commit Make builtin-tag.c use parse_options.
2007-12-01Merge 1.5.3.7 inLibravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-01Fix typo in t4008 test titleLibravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-30Merge branch 'maint'Libravatar Junio C Hamano8-7/+129
* maint: Replace the word 'update-cache' by 'update-index' everywhere cvsimport: fix usage of cvsimport.module t7003-filter-branch: Fix test of a failing --msg-filter. cvsimport: miscellaneous packed-ref fixes cvsimport: use rev-parse to support packed refs Add basic cvsimport tests
2007-11-30Add "--expire <time>" option to 'git prune'Libravatar Johannes Schindelin1-0/+18
Earlier, 'git prune' would prune all loose unreachable objects. This could be quite dangerous, as the objects could be used in an ongoing operation. This patch adds a mode to expire only loose, unreachable objects which are older than a certain time. For example, by git prune --expire 14.days you can prune only those objects which are loose, unreachable and older than 14 days (and thus probably outdated). The implementation uses st.st_mtime rather than st.st_ctime, because it can be tested better, using 'touch -d <time>' (and omitting the test when the platform does not support that command line switch). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-30Replace the word 'update-cache' by 'update-index' everywhereLibravatar Johannes Schindelin6-6/+6
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-30cvsimport: fix usage of cvsimport.moduleLibravatar Jeff King1-0/+21
There were two problems: 1. We only look at the config variable if there is no module given on the command line. We checked this by comparing @ARGV == 0. However, at the time of the comparison, we have not yet parsed the dashed options, meaning that "git cvsimport" would read the variable but "git cvsimport -a" would not. This is fixed by simply moving the check after the call to getopt. 2. If the config variable did not exist, we were adding an empty string to @ARGV. The rest of the script, rather than barfing for insufficient input, would then try to import the module '', leading to rather confusing error messages. Based on patch from Emanuele Giaquinta. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-30receive-pack: allow deletion of corrupt refsLibravatar Johannes Schindelin1-3/+42
Occasionally, in some setups (*cough* forks on repo.or.cz *cough*) some refs go stale, e.g. when the forkee rebased and lost some objects needed by the fork. The quick & dirty way to deal with those refs is to delete them and push them again. However, git-push first would first fetch the current commit name for the ref, would receive a null sha1 since the ref does not point to a valid object, then tell receive-pack that it should delete the ref with this commit name. delete_ref() would be subsequently be called, and check that resolve_ref() (which does _not_ check for validity of the object) returns the same commit name. Which would fail. The proper fix is to avoid corrupting repositories, but in the meantime this is a good fix in any case. Incidentally, some instances of "cd .." in the test cases were fixed, so that subsequent test cases run in t/trash/ irrespective of the outcome of the previous test cases. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-30Merge branch 'jk/maint-cvsimport-fix' into maintLibravatar Junio C Hamano1-0/+101
* jk/maint-cvsimport-fix: cvsimport: miscellaneous packed-ref fixes cvsimport: use rev-parse to support packed refs Add basic cvsimport tests
2007-11-30t7003-filter-branch: Fix test of a failing --msg-filter.Libravatar Johannes Sixt1-1/+1
The test passed for the wrong reason: If the script given to --msg-filter fails, it is expected that git-filter-branch aborts. But the test forgot to tell the branch name to rewrite, and so git-filter-branch failed due to incorrect usage. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-28Teach 'git pull' about --rebaseLibravatar Johannes Schindelin1-0/+22
When calling 'git pull' with the '--rebase' option, it performs a fetch + rebase instead of a fetch + merge. This behavior is more desirable than fetch + pull when a topic branch is ready to be submitted and needs to be update. fetch + rebase might also be considered a better workflow with shared repositories in any case, or for contributors to a centrally managed repository, such as WINE's. As a convenience, you can set the default behavior for a branch by defining the config variable branch.<name>.rebase, which is interpreted as a bool. This setting can be overridden on the command line by --rebase and --no-rebase. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-28Revert "t5516: test update of local refs on push"Libravatar Jeff King1-28/+0
This reverts commit 09fba7a59d38d1cafaf33eadaf1d409c4113b30c. These tests are superseded by the ones in t5404 (added in 6fa92bf3 and 8736a848), which are more extensive and better organized. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-28cvsimport: use rev-parse to support packed refsLibravatar Jeff King1-0/+2
Previously, if refs were packed, git-cvsimport would assume that particular refs did not exist. This could lead to, for example, overwriting previous 'origin' commits that were packed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-28Add basic cvsimport testsLibravatar Jeff King1-0/+99
We weren't even testing basic things before, so let's at least try importing and updating a trivial repository, which will catch total breakage. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-25git-tag: test that -s implies an annotated tagLibravatar Jeff King1-0/+16
This detects a regression introduced while moving git-tag to a C builtin. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-24Merge branch 'rv/maint-index-commit' into maintLibravatar Junio C Hamano1-0/+32
* rv/maint-index-commit: Make GIT_INDEX_FILE apply to git-commit
2007-11-24Merge branch 'lt/maint-rev-list-gitlink' into maintLibravatar Junio C Hamano1-0/+42
* lt/maint-rev-list-gitlink: Fix rev-list when showing objects involving submodules
2007-11-24Merge branch 'jc/maint-add-sync-stat' into maintLibravatar Junio C Hamano1-2/+28
* jc/maint-add-sync-stat: t2200: test more cases of "add -u" git-add: make the entry stat-clean after re-adding the same contents ce_match_stat, run_diff_files: use symbolic constants for readability
2007-11-24Merge branch 'jc/maint-format-patch-encoding' into maintLibravatar Junio C Hamano1-0/+42
* jc/maint-format-patch-encoding: test format-patch -s: make sure MIME content type is shown as needed format-patch -s: add MIME encoding header if signer's name requires so
2007-11-24Merge branch 'bs/maint-t7005' into maintLibravatar Junio C Hamano1-3/+2
* bs/maint-t7005: t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH
2007-11-24Merge branch 'bs/maint-commit-options' into maintLibravatar Junio C Hamano1-0/+10
* bs/maint-commit-options: git-commit: Add tests for invalid usage of -a/--interactive with paths git-commit.sh: Fix usage checks regarding paths given when they do not make sense