summaryrefslogtreecommitdiff
path: root/t
AgeCommit message (Collapse)AuthorFilesLines
2008-05-11repack: modify behavior of -A option to leave unreferenced objects unpackedLibravatar Brandon Casey1-0/+47
The previous behavior of the -A option was to retain any previously packed objects which had become unreferenced, and place them into the newly created pack file. Since git-gc, when run automatically with the --auto option, calls repack with the -A option, this had the effect of retaining unreferenced packed objects indefinitely. To avoid this scenario, the user was required to run git-gc with the little known --prune option or to manually run repack with the -a option. This patch changes the behavior of the -A option so that unreferenced objects that exist in any pack file being replaced, will be unpacked into the repository. The unreferenced loose objects can then be garbage collected by git-gc (i.e. git-prune) based on the gc.pruneExpire setting. Also add new tests for checking whether unreferenced objects which were previously packed are properly left in the repository unpacked after repacking. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-08Merge branch 'sg/merge-options' (early part)Libravatar Junio C Hamano2-8/+85
* 'sg/merge-options' (early part): merge, pull: add '--(no-)log' command line option fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variable add 'merge.stat' config variable merge, pull: introduce '--(no-)stat' option doc: moved merge.* config variables into separate merge-config.txt
2008-05-05Merge branch 'bc/filter-branch'Libravatar Junio C Hamano1-0/+32
* bc/filter-branch: filter-branch.sh: support nearly proper tag name filtering
2008-05-05Merge branch 'lh/git-file'Libravatar Junio C Hamano1-0/+103
* lh/git-file: Teach GIT-VERSION-GEN about the .git file Teach git-submodule.sh about the .git file Teach resolve_gitlink_ref() about the .git file Add platform-independent .git "symlink"
2008-05-05Merge branch 'lh/branch-merged'Libravatar Junio C Hamano1-1/+41
* lh/branch-merged: Add tests for `branch --[no-]merged` git-branch.txt: compare --contains, --merged and --no-merged git-branch: add support for --merged and --no-merged
2008-05-05Merge branch 'pb/remote-mirror-config'Libravatar Junio C Hamano1-1/+40
* pb/remote-mirror-config: Add a remote.*.mirror configuration option
2008-04-29Use the modern syntax of git-diff-files in t2002-checkout-cache-u.shLibravatar Alex Riesen1-2/+2
As a nice side effect it also fixes t2002-checkout-cache-u.sh on FreeBSD 4, /bin/sh of which has problems interpreting "! command" construction. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-27Merge branch 'maint'Libravatar Junio C Hamano1-0/+26
* maint: clone: detect and fail on excess parameters Remove 'header' from --signoff option description
2008-04-27clone: detect and fail on excess parametersLibravatar Junio C Hamano1-0/+26
"git clone [options] $src $dst excess-garbage" simply ignored excess-garbage without giving any diagnostic message. Fix it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-25Merge branch 'ho/shared'Libravatar Junio C Hamano1-0/+50
* ho/shared: Make core.sharedRepository more generic
2008-04-24Merge branch 'maint'Libravatar Junio C Hamano3-13/+118
* maint: remote: create fetch config lines with '+' push: allow unqualified dest refspecs to DWIM doc/git-gc: add a note about what is collected t5516: remove ambiguity test (1) Linked glossary from cvs-migration page write-tree: properly detect failure to write tree objects
2008-04-24remote: create fetch config lines with '+'Libravatar Jeff King1-0/+10
Since git-remote always uses remote tracking branches, it should be safe to always force updates of those branches. I.e., we should generate fetch = +refs/heads/*:refs/remotes/$remote/* instead of fetch = refs/heads/*:refs/remotes/$remote/* This was the behavior of the perl version, which seems to have been lost in the C rewrite. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-24push: allow unqualified dest refspecs to DWIMLibravatar Jeff King1-0/+40
Previously, a push like: git push remote src:dst would go through the following steps: 1. check for an unambiguous 'dst' on the remote; if it exists, then push to that ref 2. otherwise, check if 'dst' begins with 'refs/'; if it does, create a new ref 3. otherwise, complain because we don't know where in the refs hierarchy to put 'dst' However, in some cases, we can guess about the ref type of 'dst' based on the ref type of 'src'. Specifically, before complaining we now check: 2.5. if 'src' resolves to a ref starting with refs/heads or refs/tags, then prepend that to 'dst' So now this creates a new branch on the remote, whereas it previously failed with an error message: git push master:newbranch Note that, by design, we limit this DWIM behavior only to source refs which resolve exactly (including symrefs which resolve to existing refs). We still complain on a partial destination refspec if the source is a raw sha1, or a ref expression such as 'master~10'. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-24Merge branch 'maint-1.5.4' into maintLibravatar Junio C Hamano2-13/+68
* maint-1.5.4: t5516: remove ambiguity test (1) Linked glossary from cvs-migration page write-tree: properly detect failure to write tree objects
2008-04-23t5516: remove ambiguity test (1)Libravatar Jeff King1-13/+1
This test tried to push into a remote with ambiguous refs in remotes/$x/master and remotes/$y/master. However, the remote never actually tells us about the refs/remotes hierarchy, so we don't even see this ambiguity. The test happened to pass because we were simply looking for failure, and the test fails for another reason: the dst refspec does not exist and does not begin with refs/, making it invalid. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-23write-tree: properly detect failure to write tree objectsLibravatar Junio C Hamano1-0/+67
Tomasz Fortuna reported that "git commit" does not error out properly when it cannot write tree objects out. "git write-tree" shares the same issue, as the failure to notice the error is deep in the logic to write tree objects out recursively. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-23Merge branch 'maint'Libravatar Junio C Hamano1-0/+8
* maint: Amend git-push refspec documentation git-gc --prune is deprecated svn-git: Use binmode for reading/writing binary rev maps diff options documentation: refer to --diff-filter in --name-status Don't force imap.host to be set when imap.tunnel is set git-clone.txt: Adjust note to --shared for new pruning behavior of git-gc git-svn bug with blank commits and author file archive.c: format_subst - fixed bogus argument to memchr copy.c: copy_fd - correctly report write errors gitattributes: Fix subdirectory attributes specified from root directory
2008-04-22Merge branch 'maint-1.5.4' into maintLibravatar Junio C Hamano1-0/+8
* maint-1.5.4: svn-git: Use binmode for reading/writing binary rev maps diff options documentation: refer to --diff-filter in --name-status git-svn bug with blank commits and author file archive.c: format_subst - fixed bogus argument to memchr copy.c: copy_fd - correctly report write errors gitattributes: Fix subdirectory attributes specified from root directory
2008-04-22gitattributes: Fix subdirectory attributes specified from root directoryLibravatar Matthew Ogilvie1-0/+8
Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-20Add a remote.*.mirror configuration optionLibravatar Paolo Bonzini1-1/+40
This patch adds a remote.*.mirror configuration option that, when set, automatically puts git-push in --mirror mode for that remote. Furthermore, the option is set automatically by `git remote add --mirror'. The code in remote.c to parse remote.*.skipdefaultupdate had a subtle problem: a comment in the code indicated that special care was needed for boolean options, but this care was not used in parsing the option. Since I was touching related code, I did this fix too. [jc: and I further fixed up the "ignore boolean" code.] Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-20Add tests for `branch --[no-]merged`Libravatar Lars Hjemli1-1/+41
Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-19Merge branch 'jc/maint-rebase-am' into maintLibravatar Junio C Hamano1-0/+41
* jc/maint-rebase-am: rebase: do not munge commit log message Conflicts: git-am.sh
2008-04-19Merge branch 'py/submodule'Libravatar Junio C Hamano2-0/+147
* py/submodule: builtin-status: Add tests for submodule summary builtin-status: submodule summary support git-submodule summary: --for-status option
2008-04-19Merge branch 'jc/maint-rebase-am'Libravatar Junio C Hamano1-0/+41
* jc/maint-rebase-am: rebase: do not munge commit log message Conflicts: git-am.sh
2008-04-18Merge branch 'maint'Libravatar Junio C Hamano2-0/+22
* maint: gitweb: Fix 'history' view for deleted files with history Document that WebDAV doesn't need git on the server, and works over SSL git-remote: reject adding remotes with invalid names am: POSIX portability fix
2008-04-18gitweb: Fix 'history' view for deleted files with historyLibravatar Jakub Narebski1-0/+16
When asked for history of a file which is not present in given branch ("HEAD", i.e. current branch, or given by transient $hash_hase ('hb') parameter), but is present deeper in the history (meaning that "git rev-list --full-history $hash_base -- $file_name" is not empty), and there is no $hash ('h') parameter set for a file, gitweb would spew multiple of "Use of uninitialized value" warnings, and some links would be missing. This commit fixes this bug. This bug occurs in the rare cases when "git log -- <path>" is empty and "git log --full-history -- <path>" is not, or to be more exact in the cases when full-history starts later than given branch. It can happen if you are using handcrafted gitwb URL, or if you follow generic 'history' link or bookmark for a file which got deleted. Gitweb tried to get file type ('tree', or 'blob', or even 'commit') from the commit we start searching from (where the file was not present), and not among found commits. This was the cause of "Use of uninitialized value" warnings. This commit also add tests for such situation to t9500 test. While we are it, return HTTP error if there is _no_ history; it means that file or directory was not found (for given branch). Also error out if type of item could not be found: it should not happen now, but better be sure. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-18git-remote: reject adding remotes with invalid namesLibravatar Jonas Fonseca1-0/+6
This can happen if the arguments to git-remote add is switched by the user, and git would only show an error if fetching was also requested. Fix it by using the refspec parsing engine to check if the requested name can be parsed as a remote before add it. Also cleanup so that the "remote.<name>.url" config name buffer is only initialized once. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-16Make core.sharedRepository more genericLibravatar Heikki Orsila1-0/+50
git init --shared=0xxx, where '0xxx' is an octal number, will create a repository with file modes set to '0xxx'. Users with a safe umask value (0077) can use this option to force file modes. For example, '0640' is a group-readable but not group-writable regardless of user's umask value. Values compatible with old Git versions are written as they were before, for compatibility reasons. That is, "1" for "group" and "2" for "everybody". "git config core.sharedRepository 0xxx" is also handled. Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-16rebase: do not munge commit log messageLibravatar Junio C Hamano1-0/+41
Traditionally git-rebase was implemented in terms of "format-patch" piped to "am -3", to strike balance between speed (because it avoids a rather expensive read-tree/merge-recursive machinery most of the time) and flexibility (the magic "-3" allows it to fall back to 3-way merge as necessary). However, this combination has one flaw when dealing with a nonstandard commit log message format that has more than one lines in the first paragraph. This teaches "git am --rebasing" to take advantage of the fact that the mbox message "git rebase" prepares for it records the original commit object name, to get the log message from the original commit object instead. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-16Merge branch 'maint'Libravatar Junio C Hamano1-1/+6
* maint: git-bisect: make "start", "good" and "skip" succeed or fail atomically git-am: cope better with an empty Subject: line Ignore leading empty lines while summarizing merges bisect: squelch "fatal: ref HEAD not a symref" misleading message builtin-apply: Show a more descriptive error on failure when opening a patch Clarify documentation of git-cvsserver, particularly in relation to git-shell
2008-04-16Merge branch 'maint-1.5.4' into maintLibravatar Junio C Hamano1-1/+6
* maint-1.5.4: git-bisect: make "start", "good" and "skip" succeed or fail atomically git-am: cope better with an empty Subject: line Ignore leading empty lines while summarizing merges bisect: squelch "fatal: ref HEAD not a symref" misleading message builtin-apply: Show a more descriptive error on failure when opening a patch Clarify documentation of git-cvsserver, particularly in relation to git-shell
2008-04-16git-bisect: make "start", "good" and "skip" succeed or fail atomicallyLibravatar Christian Couder1-1/+6
Before this patch, when "git bisect start", "git bisect good" or "git bisect skip" were called with many revisions, they could fail after having already marked some revisions as "good", "bad" or "skip". This could be especilally bad for "git bisect start" because as the file ".git/BISECT_NAMES" would not have been written, there would have been no attempt to clear the marked revisions on a "git bisect reset". That's because if there is no ".git/BISECT_NAMES" file, nothing is done to clean things up, as the bisect session is not supposed to have started. While at it, let's also create the ".git/BISECT_START" file, only after ".git/BISECT_NAMES" as been created. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-14Merge branch 'maint'Libravatar Junio C Hamano1-2/+3
* maint: git clean: Add test to verify directories aren't removed with a prefix git clean: Don't automatically remove directories when run within subdirectory git-submodule - possibly use branch name to describe a module
2008-04-14git clean: Add test to verify directories aren't removed with a prefixLibravatar Shawn Bohrer1-2/+3
Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-13Fix git_config_bool_or_intLibravatar Junio C Hamano1-0/+58
The earlier one botched the return value logic between config_bool and config_bool_and_int. The former should normalize between 0 and 1 while the latter should give back full range of integer values. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12builtin-status: Add tests for submodule summaryLibravatar Ping Yin1-0/+134
Signed-off-by: Ping Yin <pkufranky@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12git-submodule summary: --for-status optionLibravatar Ping Yin1-0/+13
The --for-status option is mainly used by builtin-status/commit. It adds 'Modified submodules:' line at top and '# ' prefix to all following lines. Signed-off-by: Ping Yin <pkufranky@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12merge, pull: add '--(no-)log' command line optionLibravatar SZEDER Gábor1-1/+15
These are the command line option equivalents of the 'merge.log' config variable. The patch also updates documentation and bash completion accordingly, and adds a test. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variableLibravatar SZEDER Gábor1-3/+51
These are new synonyms to the '--(no-)summary' option and the 'merge.summary' config variable, but are consistent with the soon to be added 'merge --(no-)log' options. The 'merge.summary' config variable and '--(no-)summary' options are still accepted, but are advertised to be removed in the future. 'merge.log' takes precedence over 'merge.summary' if they are both set inconsistently. Update documentation and tests accordingly. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12merge, pull: introduce '--(no-)stat' optionLibravatar SZEDER Gábor1-4/+19
This option has the same effect as '--(no-)summary' (i.e. whether to show a diffsat at the end of the merge or not), and it is consistent with the '--stat' option of other git commands. Documentation, tests, and bash completion are updaed accordingly, and the old --summary option is marked as being deprected. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12Merge branch 'maint'Libravatar Junio C Hamano2-5/+5
* maint: t7401: squelch garbage output Documentation/git-submodule: typofix Fix config key miscount in url.*.insteadOf Docs gitk: Explicitly mention the files that gitk uses (~/.gitk) Document -w option to shortlog bisect: report bad rev better
2008-04-12t7401: squelch garbage outputLibravatar Junio C Hamano1-1/+1
The script had an unconditional output done outside of test_expect_* construct, which leaked out and contaminated the output without -v. Squelch it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-12Fix config key miscount in url.*.insteadOfLibravatar Daniel Barkalow1-4/+4
Also tighten test to require it to be correct. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-11Merge branch 'maint'Libravatar Junio C Hamano1-0/+13
* maint: bisect: fix bad rev checking in "git bisect good" revision.c: make --date-order overriddable git-submodule: Avoid 'fatal: cannot describe' message Force the medium pretty format on calls to git log Fix section about backdating tags in the git-tag docs Document option --only of git commit Documentation/git-request-pull: Fixed a typo ("send" -> "end")
2008-04-11Merge branch 'maint-1.5.4' into maintLibravatar Junio C Hamano1-0/+13
* maint-1.5.4: bisect: fix bad rev checking in "git bisect good" revision.c: make --date-order overriddable Fix section about backdating tags in the git-tag docs Document option --only of git commit Documentation/git-request-pull: Fixed a typo ("send" -> "end")
2008-04-11bisect: fix bad rev checking in "git bisect good"Libravatar Christian Couder1-0/+13
It seems that "git bisect good" and "git bisect skip" have never properly checked arguments that have been passed to them. As soon as one of them can be parsed as a SHA1, no error or warning would be given. This is because 'git rev-parse --revs-only --no-flags "$@"' always "exit 0" and outputs all the SHA1 it can found from parsing "$@". This patch fix this by using, for each "bisect good" argument, the same logic as for the "bisect bad" argument. While at it, this patch teaches "bisect bad" to give a meaningfull error message when it is passed more than one argument. Note that if "git bisect good" or "git bisect skip" is given some proper revs and then something that is not a proper rev, then the first proper revs will still have been marked as "good" or "skip". Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-10Merge branch 'maint'Libravatar Junio C Hamano1-1/+14
* maint: git-fetch: fix status output when not storing tracking ref core-tutorial.txt: Fix showing the current behaviour. git-archive: ignore prefix when checking file attribute Fix documentation syntax of optional arguments in short options.
2008-04-10Merge branch 'maint-1.5.4' into maintLibravatar Junio C Hamano1-1/+14
* maint-1.5.4: core-tutorial.txt: Fix showing the current behaviour. git-archive: ignore prefix when checking file attribute Fix documentation syntax of optional arguments in short options.
2008-04-10git-archive: ignore prefix when checking file attributeLibravatar René Scharfe1-1/+14
Ulrik Sverdrup noticed that git-archive doesn't correctly apply the attribute export-subst when the option --prefix is given, too. When it checked if a file has the attribute turned on, git-archive would try to look up the full path -- including the prefix -- in .gitattributes. That's wrong, as the prefix doesn't need to have any relation to any existing directories, tracked or not. This patch makes git-archive ignore the prefix when looking up if value of the attribute export-subst for a file. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-04-09Add platform-independent .git "symlink"Libravatar Lars Hjemli1-0/+103
This patch allows .git to be a regular textfile containing the path of the real git directory (prefixed with "gitdir: "), which can be useful on platforms lacking support for real symlinks. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>