summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-12-17Update draft release notes to 1.9Libravatar Junio C Hamano1-0/+37
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-17Merge branch 'kn/gitweb-extra-branch-refs'Libravatar Junio C Hamano2-46/+175
Allow gitweb to be configured to show refs out of refs/heads/ as if they were branches. * kn/gitweb-extra-branch-refs: gitweb: Denote non-heads, non-remotes branches gitweb: Add a feature for adding more branch refs gitweb: Return 1 on validation success instead of passed input gitweb: Move check-ref-format code into separate function
2013-12-17Merge branch 'tb/clone-ssh-with-colon-for-port'Libravatar Junio C Hamano7-147/+350
Be more careful when parsing remote repository URL given in the scp-style host:path notation. * tb/clone-ssh-with-colon-for-port: git_connect(): use common return point connect.c: refactor url parsing git_connect(): refactor the port handling for ssh git fetch: support host:/~repo t5500: add test cases for diag-url git fetch-pack: add --diag-url git_connect: factor out discovery of the protocol and its parts git_connect: remove artificial limit of a remote command t5601: add tests for ssh t5601: remove clear_ssh, refactor setup_ssh_wrapper
2013-12-17Merge branch 'nd/transport-positive-depth-only'Libravatar Junio C Hamano2-0/+8
"git fetch --depth=0" was a no-op, and was silently ignored. Diagnose it as an error. * nd/transport-positive-depth-only: clone,fetch: catch non positive --depth option value
2013-12-17Merge branch 'cc/starts-n-ends-with'Libravatar Junio C Hamano91-481/+484
Remove a few duplicate implementations of prefix/suffix comparison functions, and rename them to starts_with and ends_with. * cc/starts-n-ends-with: replace {pre,suf}fixcmp() with {starts,ends}_with() strbuf: introduce starts_with() and ends_with() builtin/remote: remove postfixcmp() and use suffixcmp() instead environment: normalize use of prefixcmp() by removing " != 0"
2013-12-17Merge branch 'jl/commit-v-strip-marker'Libravatar Junio C Hamano4-9/+58
"git commit -v" appends the patch to the log message before editing, and then removes the patch when the editor returned control. However, the patch was not stripped correctly when the first modified path was a submodule. * jl/commit-v-strip-marker: commit -v: strip diffs and submodule shortlogs from the commit message
2013-12-17Merge branch 'tr/send-email-ssl'Libravatar Junio C Hamano1-2/+6
SSL-related options were not passed correctly to underlying socket layer in "git send-email". * tr/send-email-ssl: send-email: set SSL options through IO::Socket::SSL::set_client_defaults send-email: --smtp-ssl-cert-path takes an argument send-email: pass Debug to Net::SMTP::SSL::new
2013-12-17Merge branch 'nd/gettext-vsnprintf'Libravatar Junio C Hamano1-4/+15
* nd/gettext-vsnprintf: gettext.c: detect the vsnprintf bug at runtime
2013-12-17Merge branch 'mm/mv-file-to-no-such-dir-with-slash'Libravatar Junio C Hamano2-7/+45
* mm/mv-file-to-no-such-dir-with-slash: mv: let 'git mv file no-such-dir/' error out
2013-12-17Merge branch 'nd/remove-opt-boolean'Libravatar Junio C Hamano1-7/+4
* nd/remove-opt-boolean: parse-options: remove OPT_BOOLEAN
2013-12-17Merge branch 'bc/doc-merge-no-op-revert'Libravatar Junio C Hamano1-0/+8
* bc/doc-merge-no-op-revert: Documentation: document pitfalls with 3-way merge
2013-12-17Merge branch 'fc/trivial'Libravatar Junio C Hamano5-6/+12
* fc/trivial: remote: fix status with branch...rebase=preserve fetch: add missing documentation t: trivial whitespace cleanups abspath: trivial style fix
2013-12-17Merge branch 'jk/t5000-gzip-simplify'Libravatar Junio C Hamano1-16/+4
Test fix. * jk/t5000-gzip-simplify: t5000: simplify gzip prerequisite checks
2013-12-17Merge branch 'kb/doc-exclude-directory-semantics'Libravatar Junio C Hamano1-2/+17
* kb/doc-exclude-directory-semantics: gitignore.txt: clarify recursive nature of excluded directories
2013-12-12Update draft release notes to 1.9Libravatar Junio C Hamano1-1/+17
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-12Merge branch 'jn/scripts-updates'Libravatar Junio C Hamano53-600/+87
* jn/scripts-updates: remove #!interpreter line from shell libraries test: replace shebangs with descriptions in shell libraries test: make FILEMODE a lazy prereq contrib: remove git-p4import mark contributed hooks executable mark perl test scripts executable mark Windows build scripts executable
2013-12-12Merge branch 'cn/thin-push-capability'Libravatar Junio C Hamano2-8/+25
Allow receive-pack to insist on receiving a fat pack from "git push" clients. * cn/thin-push-capability: send-pack: don't send a thin pack to a server which doesn't support it
2013-12-12Merge branch 'jk/remove-deprecated'Libravatar Junio C Hamano18-411/+48
* jk/remove-deprecated: stop installing git-tar-tree link peek-remote: remove deprecated alias of ls-remote lost-found: remove deprecated command tar-tree: remove deprecated command repo-config: remove deprecated alias for "git config"
2013-12-12Merge branch 'tr/commit-slab-cleanup'Libravatar Junio C Hamano1-8/+31
* tr/commit-slab-cleanup: commit-slab: sizeof() the right type in xrealloc commit-slab: declare functions "static inline" commit-slab: document clear_$slabname()
2013-12-12Merge branch 'rs/doc-submitting-patches'Libravatar Junio C Hamano1-2/+9
* rs/doc-submitting-patches: SubmittingPatches: document how to handle multiple patches
2013-12-12Merge branch 'tr/doc-git-cherry'Libravatar Junio C Hamano1-33/+110
* tr/doc-git-cherry: Documentation: revamp git-cherry(1)
2013-12-12Merge branch 'cl/p4-use-diff-tree'Libravatar Junio C Hamano1-1/+1
* cl/p4-use-diff-tree: git p4: Use git diff-tree instead of format-patch
2013-12-12Merge branch 'tr/config-multivalue-lift-max'Libravatar Junio C Hamano2-6/+77
* tr/config-multivalue-lift-max: config: arbitrary number of matches for --unset and --replace-all
2013-12-12Merge branch 'mh/fetch-tags-in-addition-to-normal-refs'Libravatar Junio C Hamano14-320/+503
The "--tags" option to "git fetch" used to be literally a synonym to a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an explicit refspec given from the command line, it silenced the lazy "git fetch" default that is configured, and (2) also as an explicit refspec given from the command line, it interacted with "--prune" to remove any tag that the remote we are fetching from does not have. This demotes it to an option; with it, we fetch all tags in addition to what would be fetched without the option, and it does not interact with the decision "--prune" makes to see what remote-tracking refs the local has are missing the remote counterpart. * mh/fetch-tags-in-addition-to-normal-refs: (23 commits) fetch: improve the error messages emitted for conflicting refspecs handle_duplicate(): mark error message for translation ref_remote_duplicates(): extract a function handle_duplicate() ref_remove_duplicates(): simplify loop logic t5536: new test of refspec conflicts when fetching ref_remove_duplicates(): avoid redundant bisection git-fetch.txt: improve description of tag auto-following fetch-options.txt: simplify ifdef/ifndef/endif usage fetch, remote: properly convey --no-prune options to subprocesses builtin/remote.c:update(): use struct argv_array builtin/remote.c: reorder function definitions query_refspecs(): move some constants out of the loop fetch --prune: prune only based on explicit refspecs fetch --tags: fetch tags *in addition to* other stuff fetch: only opportunistically update references based on command line get_expanded_map(): avoid memory leak get_expanded_map(): add docstring builtin/fetch.c: reorder function definitions get_ref_map(): rename local variables api-remote.txt: correct section "struct refspec" ...
2013-12-12gitweb: Denote non-heads, non-remotes branchesLibravatar Krzesimir Nowak1-5/+29
Given two branches residing in refs/heads/master and refs/wip/feature the list-of-branches view will present them in following way: master feature (wip) When getting a snapshot of a 'feature' branch, the tarball is going to have name like 'project-wip-feature-<short hash>.tgz'. Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-12gitweb: Add a feature for adding more branch refsLibravatar Krzesimir Nowak2-12/+105
Allow extra-branch-refs feature to tell gitweb to show refs from additional hierarchies in addition to branches in the list-of-branches view. Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-12gitweb: Return 1 on validation success instead of passed inputLibravatar Krzesimir Nowak1-29/+32
Users of validate_* passing "0" might get failures on correct name because of coercion of "0" to false in code like: die_error(500, "invalid ref") unless (check_ref_format ("0")); Also, the validate_foo subs are renamed to is_valid_foo. Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-12gitweb: Move check-ref-format code into separate functionLibravatar Krzesimir Nowak1-4/+13
This check will be used in more than one place later. Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09Merge git://repo.or.cz/git-guiLibravatar Junio C Hamano8-17/+56
* git://repo.or.cz/git-gui: git-gui: correct spelling errors in comments git-gui: add menu item to launch a bash shell on Windows. git-gui: corrected setup of git worktree under cygwin. git-gui: right half window is paned git-gui: Add gui.displayuntracked option git-gui: show the maxrecentrepo config option in the preferences dialog git-gui: added gui.maxrecentrepo to extend the number of remembered repos git-gui: Improve font rendering on retina macbooks
2013-12-09Merge git://ozlabs.org/~paulus/gitkLibravatar Junio C Hamano1-210/+353
* git://ozlabs.org/~paulus/gitk: gitk: Recognize -L option gitk: Support showing the gathered inline diffs gitk: Split out diff part in $commitinfo gitk: Refactor per-line part of getblobdiffline and its support gitk: Support -G option from the command line gitk: Tag display improvements
2013-12-09git_connect(): use common return pointLibravatar Torsten Bögershausen1-58/+50
Use only one return point from git_connect(), doing the free(); return conn; only at one place in the code. There may be a little confusion what the variable "host" is for. At some places it is only the host part, at other places it may include the port number, so change host into hostandport here. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09connect.c: refactor url parsingLibravatar Torsten Bögershausen5-37/+48
Make the function is_local() in transport.c public, rename it into url_is_local_not_ssh() and use it in both transport.c and connect.c Use a protocol "local" for URLs for the local file system. One note about using file:// under Windows: The (absolute) path on Unix like system typically starts with "/". When the host is empty, it can be omitted, so that a shell scriptlet url=file://$pwd will give a URL like "file:///home/user/repo". Windows does not have the same concept of a root directory located in "/". When parsing the URL allow "file://C:/user/repo" (even if RFC1738 indicates that "file:///C:/user/repo" should be used). Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09git_connect(): refactor the port handling for sshLibravatar Torsten Bögershausen3-49/+17
Use get_host_and_port() even for ssh. Remove the variable port git_connect(), and simplify parse_connect_url() Use only one return point in git_connect(), doing the free() and return conn. t5601 had 2 corner test cases which now pass. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09git fetch: support host:/~repoLibravatar Torsten Bögershausen3-17/+33
The documentation (in urls.txt) says that "ssh://host:/~repo", "host:/~repo" or "host:~repo" specify the repository "repo" in the home directory at "host". This has not been working for "host:/~repo". Before commit 356bec "Support [address] in URLs", the comparison "url != hostname" could be used to determine if the URL had a scheme or not: "ssh://host/host" != "host". However, after 356bec "[::1]" was converted into "::1", yielding url != hostname as well. To fix this regression, don't use "if (url != hostname)", but look at the separator instead. Rename the variable "c" into "separator" to make it easier to read. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09t5500: add test cases for diag-urlLibravatar Torsten Bögershausen1-0/+59
Add test cases using git fetch-pack --diag-url: - parse out host and path for URLs with a scheme (git:// file:// ssh://) - parse host names embedded by [] correctly - extract the port number, if present - separate URLs like "file" (which are local) from URLs like "host:repo" which should use ssh Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09git fetch-pack: add --diag-urlLibravatar Torsten Bögershausen4-3/+41
The main purpose is to trace the URL parser called by git_connect() in connect.c The main features of the parser can be listed as this: - parse out host and path for URLs with a scheme (git:// file:// ssh://) - parse host names embedded by [] correctly - extract the port number, if present - separate URLs like "file" (which are local) from URLs like "host:repo" which should use ssh Add the new parameter "--diag-url" to "git fetch-pack", which prints the value for protocol, host and path to stderr and exits. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09git_connect: factor out discovery of the protocol and its partsLibravatar Johannes Sixt1-27/+53
git_connect has grown large due to the many different protocols syntaxes that are supported. Move the part of the function that parses the URL to connect to into a separate function for readability. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09git_connect: remove artificial limit of a remote commandLibravatar Johannes Sixt1-6/+1
Since day one, function git_connect() had a limit on the command line of the command that is invoked to make a connection. 7a33bcbe converted the code that constructs the command to strbuf. This would have been the right time to remove the limit, but it did not happen. Remove it now. git_connect() uses start_command() to invoke the command; consequently, the limits of the system still apply, but are diagnosed only at execve() time. But these limits are more lenient than the 1K that git_connect() imposed. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09remote: fix status with branch...rebase=preserveLibravatar Felipe Contreras1-2/+7
Commit 66713ef (pull: allow pull to preserve merges when rebasing) didn't include an update so 'git remote status' parses branch.<name>.rebase=preserve correctly, let's do that. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09Documentation: document pitfalls with 3-way mergeLibravatar brian m. carlson1-0/+8
Oftentimes people will make the same change in two branches, revert the change in one branch, and then be surprised when a merge reinstitutes that change when the branches are merged. Add an explanatory paragraph that explains that this occurs and the reason why, so people are not surprised. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09fetch: add missing documentationLibravatar Felipe Contreras1-0/+3
There's no mention of the 'origin' default, or the fact that the upstream tracking branch remote is used. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09t: trivial whitespace cleanupsLibravatar Felipe Contreras2-3/+1
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09abspath: trivial style fixLibravatar Felipe Contreras1-1/+1
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09parse-options: remove OPT_BOOLEANLibravatar Nguyễn Thái Ngọc Duy1-7/+4
After a86a8b9 (sb/parseopt-boolean-removal), the deprecated OPT_BOOLEAN is not used anywhere except by OPT__* macros. Kill OPT_BOOLEAN and make OPT__* use OPT_COUNTUP directly instead. This should stop OPT_BOOLEAN from entering the tree again in new patches. OPT__DRY_RUN() is converted to use OPT_BOOL though because it does not make sense to increase the level of dryness. All OPT__DRY_RUN call sites have been checked and they look safe for OPT_BOOL. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-09gitignore.txt: clarify recursive nature of excluded directoriesLibravatar Karsten Blees1-2/+17
Additionally, precedence of negated patterns is exactly as outlined in the DESCRIPTION section, we don't need to repeat this. Signed-off-by: Karsten Blees <blees@dcon.de> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-06clone,fetch: catch non positive --depth option valueLibravatar Nguyễn Thái Ngọc Duy2-0/+8
Instead of simply ignoring the value passed to --depth option when it is zero or negative, catch and report it as an error to let people know that they were using the option incorrectly. Original-patch-by: Andrés G. Aragoneses <knocte@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-06config: arbitrary number of matches for --unset and --replace-allLibravatar Thomas Rast2-6/+77
git-config used a static match array to hold the matches we want to unset/replace when using --unset or --replace-all. Use a variable-sized array instead. This in particular fixes the symptoms git-svn had when storing large numbers of svn-remote.*.added-placeholder entries in the config file. While the tests are rather more paranoid than just --unset and --replace-all, the other operations already worked. Indeed git-svn's usage only breaks the first time *after* creating so many entries, when it wants to unset and re-add them all. Reported-by: Jess Hottenstein <jess.hottenstein@gmail.com> Signed-off-by: Thomas Rast <tr@thomasrast.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-06Start 1.9 cycleLibravatar Junio C Hamano3-2/+135
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-06Merge branch 'jk/remove-experimental-loose-object-support'Libravatar Junio C Hamano19-143/+0
* jk/remove-experimental-loose-object-support: drop support for "experimental" loose objects
2013-12-06Merge branch 'nd/magic-pathspec'Libravatar Junio C Hamano2-10/+13
"git diff -- ':(icase)makefile'" were rejected unnecessarily. This needs to be merged to 'maint' later. * nd/magic-pathspec: diff: restrict pathspec limitations to diff b/f case only