5135fef | Junio C Hamano | 05 March 2015, 20:48:18 UTC | Post 2.3 cycle (batch #7) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 March 2015, 20:48:18 UTC |
fcf04ee | Junio C Hamano | 05 March 2015, 20:45:45 UTC | Merge branch 'ew/svn-fixes' * ew/svn-fixes: git-svn: lazy load some modules | 05 March 2015, 20:45:46 UTC |
a6f9dec | Junio C Hamano | 05 March 2015, 20:45:45 UTC | Merge branch 'ew/svn-maint-fixes' Correct a breakage to git-svn around v2.2 era that triggers premature closing of FileHandle. * ew/svn-maint-fixes: Git::SVN::*: avoid premature FileHandle closure git-svn: fix localtime=true on non-glibc environments | 05 March 2015, 20:45:45 UTC |
42da484 | Junio C Hamano | 05 March 2015, 20:45:44 UTC | Merge branch 'tb/connect-ipv6-parse-fix' We did not parse username followed by literal IPv6 address in SSH transport URLs, e.g. ssh://user@[2001:db8::1]:22/repo.git correctly. * tb/connect-ipv6-parse-fix: t5500: show user name and host in diag-url t5601: add more test cases for IPV6 connect.c: allow ssh://user@[2001:db8::1]/repo.git | 05 March 2015, 20:45:44 UTC |
fa8baa4 | Junio C Hamano | 05 March 2015, 20:45:43 UTC | Merge branch 'jc/diff-test-updates' Test clean-up. * jc/diff-test-updates: test_ln_s_add: refresh stat info of fake symbolic links t4008: modernise style t/diff-lib: check exact object names in compare_diff_raw tests: do not borrow from COPYING and README from the real source t4010: correct expected object names t9300: correct expected object names t4008: correct stale comments | 05 March 2015, 20:45:43 UTC |
8a6444d | Junio C Hamano | 05 March 2015, 20:45:42 UTC | Merge branch 'rs/simple-cleanups' Code cleanups. * rs/simple-cleanups: sha1_name: use strlcpy() to copy strings pretty: use starts_with() to check for a prefix for-each-ref: use skip_prefix() to avoid duplicate string comparison connect: use strcmp() for string comparison | 05 March 2015, 20:45:42 UTC |
ca70473 | Junio C Hamano | 05 March 2015, 20:45:41 UTC | Merge branch 'rj/no-xopen-source-for-cygwin' Code cleanups. * rj/no-xopen-source-for-cygwin: git-compat-util.h: remove redundant code | 05 March 2015, 20:45:41 UTC |
fec7b79 | Junio C Hamano | 05 March 2015, 20:45:40 UTC | Merge branch 'mm/am-c-doc' The configuration variable 'mailinfo.scissors' was hard to discover in the documentation. * mm/am-c-doc: Documentation/git-am.txt: mention mailinfo.scissors config variable Documentation/config.txt: document mailinfo.scissors | 05 March 2015, 20:45:40 UTC |
fd9de86 | Junio C Hamano | 05 March 2015, 20:45:39 UTC | Merge branch 'mh/refs-have-new' Simplify the ref transaction API around how "the ref should be pointing at this object" is specified. * mh/refs-have-new: refs.h: remove duplication in function docstrings update_ref(): improve documentation ref_transaction_verify(): new function to check a reference's value ref_transaction_delete(): check that old_sha1 is not null_sha1 ref_transaction_create(): check that new_sha1 is valid commit: avoid race when creating orphan commits commit: add tests of commit races ref_transaction_delete(): remove "have_old" parameter ref_transaction_update(): remove "have_old" parameter struct ref_update: move "have_old" into "flags" refs.c: change some "flags" to "unsigned int" refs: remove the gap in the REF_* constant values refs: move REF_DELETING to refs.c | 05 March 2015, 20:45:39 UTC |
97c12a8 | Junio C Hamano | 03 March 2015, 22:39:10 UTC | Post 2.3 cycle (batch #6) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 March 2015, 22:39:10 UTC |
4c3dbbf | Junio C Hamano | 03 March 2015, 22:37:05 UTC | Merge branch 'jk/daemon-interpolate' The "interpolated-path" option of "git daemon" inserted any string client declared on the "host=" capability request without checking. Sanitize and limit %H and %CH to a saner and a valid DNS name. * jk/daemon-interpolate: daemon: sanitize incoming virtual hostname t5570: test git-daemon's --interpolated-path option git_connect: let user override virtual-host we send to daemon | 03 March 2015, 22:37:06 UTC |
ef4cdb8 | Junio C Hamano | 03 March 2015, 22:37:04 UTC | Merge branch 'rs/daemon-interpolate' "git daemon" looked up the hostname even when "%CH" and "%IP" interpolations are not requested, which was unnecessary. * rs/daemon-interpolate: daemon: use callback to build interpolated path daemon: look up client-supplied hostname lazily | 03 March 2015, 22:37:04 UTC |
0278b3f | Junio C Hamano | 03 March 2015, 22:37:03 UTC | Merge branch 'km/send-email-getopt-long-workarounds' Even though we officially haven't dropped Perl 5.8 support, the Getopt::Long package that came with it does not support "--no-" prefix to negate a boolean option; manually add support to help people with older Getopt::Long package. * km/send-email-getopt-long-workarounds: git-send-email.perl: support no- prefix with older GetOptions | 03 March 2015, 22:37:03 UTC |
73b690a | Junio C Hamano | 03 March 2015, 22:37:02 UTC | Merge branch 'jc/apply-ws-fix-expands-report' "git apply --whitespace=fix" fixed whitespace errors in the common context lines but did so without reporting. * jc/apply-ws-fix-expands-report: apply: detect and mark whitespace errors in context lines when fixing | 03 March 2015, 22:37:02 UTC |
71f19cc | Junio C Hamano | 03 March 2015, 22:37:01 UTC | Merge branch 'jc/apply-beyond-symlink' "git apply" was not very careful about reading from, removing, updating and creating paths outside the working tree (under --index/--cached) or the current directory (when used as a replacement for GNU patch). * jc/apply-beyond-symlink: apply: do not touch a file beyond a symbolic link apply: do not read from beyond a symbolic link apply: do not read from the filesystem under --index apply: reject input that touches outside the working area | 03 March 2015, 22:37:01 UTC |
28ed7b0 | Junio C Hamano | 26 February 2015, 22:03:57 UTC | Merge branch 'svn-maint-fixes' into svn-fixes * svn-maint-fixes: Git::SVN::*: avoid premature FileHandle closure git-svn: fix localtime=true on non-glibc environments | 26 February 2015, 22:03:57 UTC |
e426311 | Kyle J. McKay | 26 February 2015, 13:49:34 UTC | Git::SVN::*: avoid premature FileHandle closure Since b19138b (git-svn: Make it incrementally faster by minimizing temp files, v1.6.0), git-svn has been using the Git.pm temp_acquire and temp_release mechanism to avoid unnecessary temp file churn and provide a speed boost. However, that change introduced a call to temp_acquire inside the Git::SVN::Fetcher::close_file function for an 'svn_hash' temp file. Because an SVN::Pool is active at the time this function is called, if the Git::temp_acquire function ends up actually creating a new FileHandle for the temp file (which it will the first time it's called with the name 'svn_hash') that FileHandle will end up in the SVN::Pool and should that pool have SVN::Pool::clear called on it that FileHandle will be closed out from under Git::temp_acquire. Since the only call site to Git::temp_acquire with the name 'svn_hash' is inside the close_file function, if an 'svn_hash' temp file is ever created its FileHandle is guaranteed to be created in the active SVN::Pool. This has not been a problem in the past because the SVN::Pool was not being cleared. However, since dfa72fdb (git-svn: reload RA every log-window-size, v2.2.0) the pool has been getting cleared periodically at which point the FileHandle for the 'svn_hash' temp file gets closed. Any subsequent calls to Git::temp_acquire for 'svn_hash', however, succeed without creating/opening a new temporary file since it still has the now invalid FileHandle in its cache. Callers that then attempt to use that FileHandle fail with an error. We avoid this problem by making sure the 'svn_hash' temp file is created in the same place the 'svn_delta_...' and 'git_blob_...' temp files are (and then temp_release'd) so that it can be safely used inside the close_file function without having its FileHandle end up in an SVN::Pool that gets cleared. Additionally the Git.pm cat_blob function creates a bidirectional pipe FileHandle using the IPC::Open2::open2 function. If that handle is created too late, it also gets caught up in the SVN::Pool and incorrectly closed by the SVN::Pool::clear call. But this only seems to happen with more recent versions of Perl and svn. To avoid this problem we add an explicit call to _open_cat_blob_if_needed before the first call to SVN::Pool->new_default to make sure the open2 handle does not end up in the SVN::Pool. Signed-off-by: Kyle J. McKay <mackyle@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 February 2015, 22:02:34 UTC |
45c956b | Ryuichi Kokubo | 25 February 2015, 16:04:41 UTC | git-svn: fix localtime=true on non-glibc environments git svn uses POSIX::strftime('%s', $sec, $min, ...) to make unix epoch time. But lowercase %s formatting character is a GNU extention. This causes problem in git svn fetch --localtime on non-glibc systems, such as msys or cygwin. Using Time::Local::timelocal($sec, $min, ...) fixes it. Signed-off-by: Ryuichi Kokubo <ryu1kkb@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net> Notes: lowercase %s format character in strftime is a GNU extension and not widely supported. POSIX::strftime affected by underlying crt's strftime because POSIX::strftime just calls crt's one. Time::Local is good function to replace POSIX::strftime because it's a perl core module function. Document about Time::Local. http://perldoc.perl.org/Time/Local.html These are specifications of strftime. The GNU C Library Reference Manual. http://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html perl POSIX module's strftime document. It does not have '%s'. http://perldoc.perl.org/POSIX.html strftime document of Microsort Windows C Run-Time library. https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx The Open Group's old specification does not have '%s' too. http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html On my environment, following problems happened. - msys : git svn fetch does not progress at all with perl.exe consuming CPU. - cygwin : git svn fetch progresses but time stamp information is dropped. Every commits have unix epoch timestamp. I would like to thank git developer and contibutors. git helps me so much everyday. Thank you. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 February 2015, 22:02:34 UTC |
47092c1 | Eric Wong | 15 January 2015, 08:54:22 UTC | git-svn: lazy load some modules We can delay loading some modules until we need them for uncommon code paths. For example, persistent memoization is not often needed, so we can avoid loading the modules for it until we encounter svn::mergeinfo during fetch. This gives a tiny reduction in syscalls (from 15641 to 15305) when running "git svn info" and counting via "strace -fc". Further, more invasive work will be needed to noticeably improve performance. Signed-off-by: Eric Wong <normalperson@yhbt.net> | 26 February 2015, 20:19:21 UTC |
7f4ba4b | Junio C Hamano | 25 February 2015, 23:44:04 UTC | Post 2.3 cyle (batch #5) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 February 2015, 23:44:04 UTC |
767f000 | Junio C Hamano | 25 February 2015, 23:40:21 UTC | Merge branch 'ak/git-pm-typofix' Typofix in comments. * ak/git-pm-typofix: Git.pm: two minor typo fixes | 25 February 2015, 23:40:22 UTC |
b4e8fef | Junio C Hamano | 25 February 2015, 23:40:21 UTC | Merge branch 'sb/plug-leak-in-make-cache-entry' "update-index --refresh" used to leak when an entry cannot be refreshed for whatever reason. * sb/plug-leak-in-make-cache-entry: read-cache.c: free cache entry when refreshing fails | 25 February 2015, 23:40:21 UTC |
be94b33 | Junio C Hamano | 25 February 2015, 23:40:19 UTC | Merge branch 'mh/transport-capabilities' The transport-helper did not give transport options such as verbosity, progress, cloning, etc. to import and export based helpers, like it did for fetch and push based helpers, robbing them the chance to honor the wish of the end-users better. * mh/transport-capabilities: transport-helper: ask the helper to set the same options for import as for fetch transport-helper: ask the helper to set progress and verbosity options after asking for its capabilities | 25 February 2015, 23:40:20 UTC |
33a2eea | Junio C Hamano | 25 February 2015, 23:40:19 UTC | Merge branch 'jc/send-email-sensible-encoding' "git send-email" used to accept a mistaken "y" (or "yes") as an answer to "What encoding do you want to use [UTF-8]? " without questioning. Now it asks for confirmation when the answer looks too short to be a valid encoding name. * jc/send-email-sensible-encoding: send-email: ask confirmation if given encoding name is very short | 25 February 2015, 23:40:19 UTC |
75b49bb | Junio C Hamano | 25 February 2015, 23:40:18 UTC | Merge branch 'jk/sanity' The tests that wanted to see that file becomes unreadable after running "chmod a-r file", and the tests that wanted to make sure it is not run as root, we used "can we write into the / directory?" as a cheap substitute, but on some platforms that is not a good heuristics. The tests and their prerequisites have been updated to check what they really require. * jk/sanity: test-lib.sh: set prerequisite SANITY by testing what we really need tests: correct misuses of POSIXPERM t/lib-httpd: switch SANITY check for NOT_ROOT | 25 February 2015, 23:40:18 UTC |
4f5a427 | Junio C Hamano | 25 February 2015, 23:40:16 UTC | Merge branch 'sb/hex-object-name-is-at-most-41-bytes-long' Code clean-up. * sb/hex-object-name-is-at-most-41-bytes-long: hex.c: reduce memory footprint of sha1_to_hex static buffers | 25 February 2015, 23:40:17 UTC |
1585dfe | Junio C Hamano | 25 February 2015, 23:40:15 UTC | Merge branch 'jk/fast-import-die-nicely-fix' "git fast-import" used to crash when it could not close and conclude the resulting packfile cleanly. * jk/fast-import-die-nicely-fix: fast-import: avoid running end_packfile recursively | 25 February 2015, 23:40:15 UTC |
a75c663 | Junio C Hamano | 25 February 2015, 23:40:14 UTC | Merge branch 'dp/remove-duplicated-header-inclusion' Code clean-up. * dp/remove-duplicated-header-inclusion: do not include the same header twice | 25 February 2015, 23:40:14 UTC |
81a535d | Junio C Hamano | 25 February 2015, 23:40:13 UTC | Merge branch 'jc/max-io-size-and-ssize-max' Our default I/O size (8 MiB) for large files was too large for some platforms with smaller SSIZE_MAX, leading to read(2)/write(2) failures. * jc/max-io-size-and-ssize-max: xread/xwrite: clip MAX_IO_SIZE to SSIZE_MAX | 25 February 2015, 23:40:13 UTC |
90eea88 | Junio C Hamano | 25 February 2015, 23:40:12 UTC | Merge branch 'tc/missing-http-proxyauth' We did not check the curl library version before using CURLOPT_PROXYAUTH feature that may not exist. * tc/missing-http-proxyauth: http: support curl < 7.10.7 | 25 February 2015, 23:40:12 UTC |
e2a318f | Junio C Hamano | 25 February 2015, 23:40:10 UTC | Merge branch 'jk/strbuf-doc-to-header' The strbuf API was explained between the API documentation and in the header file. Move missing bits to strbuf.h so that programmers can check only one place for all necessary information. * jk/strbuf-doc-to-header: strbuf.h: group documentation for trim functions strbuf.h: drop boilerplate descriptions of strbuf_split_* strbuf.h: reorganize api function grouping headers strbuf.h: format asciidoc code blocks as 4-space indent strbuf.h: drop asciidoc list formatting from API docs strbuf.h: unify documentation comments beginnings strbuf.h: integrate api-strbuf.txt documentation | 25 February 2015, 23:40:11 UTC |
50e1ba5 | Junio C Hamano | 25 February 2015, 23:40:10 UTC | Merge branch 'nd/attr-optim' Optimize attribute look-up, mostly useful in "git grep" on a project that does not use many attributes, by avoiding it when we (should) know that the attributes are not defined in the first place. * nd/attr-optim: attr: avoid heavy work when we know the specified attr is not defined attr: do not attempt to expand when we know it's not a macro attr.c: rename arg name attr_nr to avoid shadowing the global one | 25 February 2015, 23:40:10 UTC |
32464d3 | Junio C Hamano | 25 February 2015, 23:40:09 UTC | Merge branch 'jn/doc-api-errors' The error handling functions and conventions are now documented in the API manual. * jn/doc-api-errors: doc: document error handling functions and conventions | 25 February 2015, 23:40:09 UTC |
11acff1 | Junio C Hamano | 25 February 2015, 06:15:49 UTC | Sync with 2.3.1 | 25 February 2015, 06:15:49 UTC |
8004647 | Junio C Hamano | 25 February 2015, 06:14:42 UTC | Git 2.3.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 February 2015, 06:14:42 UTC |
7bc4c01 | Junio C Hamano | 25 February 2015, 06:10:42 UTC | Merge branch 'ak/add-i-empty-candidates' into maint The interactive "show a list and let the user choose from it" interface "add -i" used showed and prompted to the user even when the candidate list was empty, against which the only "choice" the user could have made was to choose nothing. * ak/add-i-empty-candidates: add -i: return from list_and_choose if there is no candidate | 25 February 2015, 06:10:42 UTC |
2764442 | Junio C Hamano | 25 February 2015, 06:10:41 UTC | Merge branch 'jc/apply-ws-fix-expands' into maint "git apply --whitespace=fix" used to under-allocate the memory when the fix resulted in a longer text than the original patch. * jc/apply-ws-fix-expands: apply: count the size of postimage correctly apply: make update_pre_post_images() sanity check the given postlen apply.c: typofix | 25 February 2015, 06:10:41 UTC |
254a3eb | Junio C Hamano | 25 February 2015, 06:10:39 UTC | Merge branch 'jc/doc-log-rev-list-options' into maint "git log --help" used to show rev-list options that are irrelevant to the "log" command. * jc/doc-log-rev-list-options: Documentation: what does "git log --indexed-objects" even mean? | 25 February 2015, 06:10:40 UTC |
7070c03 | Junio C Hamano | 25 February 2015, 06:10:38 UTC | Merge branch 'mg/commit-author-no-match-malformed-message' into maint The error message from "git commit", when a non-existing author name was given as value to the "--author=" parameter, has been reworded to avoid misunderstanding. * mg/commit-author-no-match-malformed-message: commit: reword --author error message | 25 February 2015, 06:10:38 UTC |
117c1b3 | Junio C Hamano | 25 February 2015, 06:10:37 UTC | Merge branch 'jk/dumb-http-idx-fetch-fix' into maint A broken pack .idx file in the receiving repository prevented the dumb http transport from fetching a good copy of it from the other side. * jk/dumb-http-idx-fetch-fix: dumb-http: do not pass NULL path to parse_pack_index | 25 February 2015, 06:10:37 UTC |
9f8410b | Junio C Hamano | 25 February 2015, 06:10:36 UTC | Merge branch 'jc/diff-format-doc' into maint The documentation incorrectly said that C(opy) and R(ename) are the only ones that can be followed by the score number in the output in the --raw format. * jc/diff-format-doc: diff-format doc: a score can follow M for rewrite | 25 February 2015, 06:10:36 UTC |
b9efce1 | Junio C Hamano | 25 February 2015, 06:10:35 UTC | Merge branch 'jk/remote-curl-an-array-in-struct-cannot-be-null' into maint Fix a misspelled conditional that is always true. * jk/remote-curl-an-array-in-struct-cannot-be-null: do not check truth value of flex arrays | 25 February 2015, 06:10:35 UTC |
93baadb | Junio C Hamano | 25 February 2015, 06:10:21 UTC | Merge branch 'jk/status-read-branch-name-fix' into maint Code to read branch name from various files in .git/ directory would have misbehaved if the code to write them left an empty file. * jk/status-read-branch-name-fix: read_and_strip_branch: fix typo'd address-of operator | 25 February 2015, 06:10:22 UTC |
2fc85f0 | Junio C Hamano | 25 February 2015, 06:10:19 UTC | Merge branch 'mg/push-repo-option-doc' into maint The "git push" documentation made the "--repo=<there>" option easily misunderstood. * mg/push-repo-option-doc: git-push.txt: document the behavior of --repo | 25 February 2015, 06:10:19 UTC |
8f3d03d | Junio C Hamano | 25 February 2015, 06:10:17 UTC | Merge branch 'bc/http-fallback-to-password-after-krb-fails' into maint After attempting and failing a password-less authentication (e.g. kerberos), libcURL refuses to fall back to password based Basic authentication without a bit of help/encouragement. * bc/http-fallback-to-password-after-krb-fails: remote-curl: fall back to Basic auth if Negotiate fails | 25 February 2015, 06:10:17 UTC |
6606129 | Junio C Hamano | 25 February 2015, 06:10:15 UTC | Merge branch 'dk/format-patch-ignore-diff-submodule' into maint Setting diff.submodule to 'log' made "git format-patch" produce broken patches. * dk/format-patch-ignore-diff-submodule: format-patch: ignore diff.submodule setting t4255: test am submodule with diff.submodule | 25 February 2015, 06:10:15 UTC |
74419c2 | Junio C Hamano | 25 February 2015, 06:10:13 UTC | Merge branch 'jn/rerere-fail-on-auto-update-failure' into maint "git rerere" (invoked internally from many mergy operations) did not correctly signal errors when told to update the working tree files and failed to do so for whatever reason. * jn/rerere-fail-on-auto-update-failure: rerere: error out on autoupdate failure | 25 February 2015, 06:10:13 UTC |
faf723a | Junio C Hamano | 25 February 2015, 06:09:54 UTC | Merge branch 'jk/blame-commit-label' into maint "git blame HEAD -- missing" failed to correctly say "HEAD" when it tried to say "No such path 'missing' in HEAD". * jk/blame-commit-label: blame.c: fix garbled error message use xstrdup_or_null to replace ternary conditionals builtin/commit.c: use xstrdup_or_null instead of envdup builtin/apply.c: use xstrdup_or_null instead of null_strdup git-compat-util: add xstrdup_or_null helper | 25 February 2015, 06:09:54 UTC |
817d03e | Johannes Sixt | 23 February 2015, 18:14:47 UTC | test_ln_s_add: refresh stat info of fake symbolic links We have a helper function test_ln_s_add that inserts a symbolic link into the index even if the file system does not support symbolic links. There is a small flaw in the emulation path: the added entry does not pick up stat information of the fake symbolic link from the file system, as a consequence, the index is not exactly the same as for the "regular" path (where symbolic links are available). To fix this, just call git update-index again. This flaw was revealed by the earlier change that tightened compare_diff_raw(), because a test case in t4008 depends on the correctly updated index. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 February 2015, 19:45:39 UTC |
33baa69 | Ramsay Jones | 23 February 2015, 00:07:14 UTC | git-compat-util.h: remove redundant code Since commit 3a0a3a89 ("git-compat-util.h: don't define _XOPEN_SOURCE on cygwin", 23-11-2014) removed the definition of _XOPEN_SOURCE on cygwin, the code within a pre-processor conditional further down the file became redundant. Remove the redundant code. This effectively reverts commit 41b20017 ("Fix an "implicit function definition" warning", 03-03-2007). Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 February 2015, 02:56:23 UTC |
355d4e1 | Junio C Hamano | 22 February 2015, 20:29:36 UTC | Post 2.3 cycle (batch #4) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:29:36 UTC |
9a9c1f1 | Junio C Hamano | 22 February 2015, 20:28:31 UTC | Merge branch 'jc/conf-var-doc' Longstanding configuration variable naming rules has been added to the documentation. * jc/conf-var-doc: CodingGuidelines: describe naming rules for configuration variables config.txt: mark deprecated variables more prominently config.txt: clarify that add.ignore-errors is deprecated | 22 February 2015, 20:28:31 UTC |
744ea70 | Junio C Hamano | 22 February 2015, 20:28:30 UTC | Merge branch 'es/squelch-openssl-warnings-on-macosx' An earlier workaround to squelch unhelpful deprecation warnings from the complier on Mac OSX unnecessarily set minimum required version of the OS, which the user might want to raise (or lower) for other reasons. * es/squelch-openssl-warnings-on-macosx: git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED | 22 February 2015, 20:28:30 UTC |
c0997fe | Junio C Hamano | 22 February 2015, 20:28:29 UTC | Merge branch 'tc/curl-vernum-output-broken-in-7.11' Certain older vintages of cURL give irregular output from "curl-config --vernum", which confused our build system. * tc/curl-vernum-output-broken-in-7.11: Makefile: handle broken curl version number in version check | 22 February 2015, 20:28:29 UTC |
7cf6232 | Junio C Hamano | 22 February 2015, 20:28:28 UTC | Merge branch 'jk/prune-mtime' In v2.2.0, we broke "git prune" that runs in a repository that borrows from an alternate object store. * jk/prune-mtime: sha1_file: fix iterating loose alternate objects for_each_loose_file_in_objdir: take an optional strbuf path | 22 February 2015, 20:28:28 UTC |
dcc883d | Junio C Hamano | 22 February 2015, 20:28:27 UTC | Merge branch 'jc/diff-files-ita' Code cleanup. * jc/diff-files-ita: run_diff_files(): clarify computation of sha1 validity | 22 February 2015, 20:28:27 UTC |
070f6fe | Junio C Hamano | 22 February 2015, 20:28:26 UTC | Merge branch 'ps/submodule-sanitize-path-upon-add' "git submodule add" failed to squash "path/to/././submodule" to "path/to/submodule". * ps/submodule-sanitize-path-upon-add: git-submodule.sh: fix '/././' path normalization | 22 February 2015, 20:28:26 UTC |
f11f76b | Junio C Hamano | 22 February 2015, 20:28:25 UTC | Merge branch 'ab/merge-file-prefix' "git merge-file" did not work correctly in a subdirectory. * ab/merge-file-prefix: merge-file: correctly open files when in a subdir | 22 February 2015, 20:28:25 UTC |
073bb8e | Junio C Hamano | 22 February 2015, 20:28:24 UTC | Merge branch 'es/blame-commit-info-fix' "git blame" died, trying to free an uninitialized piece of memory. * es/blame-commit-info-fix: builtin/blame: destroy initialized commit_info only | 22 February 2015, 20:28:24 UTC |
df3f4ba | Junio C Hamano | 22 February 2015, 20:28:23 UTC | Merge branch 'ss/check-builtins-on-windows' * ss/check-builtins-on-windows: check-builtins: strip executable suffix $X when enumerating builtins | 22 February 2015, 20:28:23 UTC |
3f55cca | Torsten Bögershausen | 21 February 2015, 15:52:55 UTC | t5500: show user name and host in diag-url The URL for ssh may have include a username before the hostname, like ssh://user@host/repo. When literal IPV6 addresses are used together with a username, the substring "user@[::1]" must be converted into "user@::1". Make that conversion visible for the user, and write userandhost in the diagnostics Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:04:01 UTC |
9f69765 | Torsten Bögershausen | 21 February 2015, 15:53:01 UTC | t5601: add more test cases for IPV6 Test the parsing of literall IPV6 addresses more systematically: - with and without brackets (e.g. ::1 [::1]) - with brackets and port number: (e.g. [::1]:22) - with username (e.g. user@::1) - with username and brackets: Because user@[::1] was not supported on older Git version, [user@::1] had to be used as a workaround. Test that user@::1 user@[::1] and [user@::1] all do the same. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:03:54 UTC |
86ceb33 | Torsten Bögershausen | 21 February 2015, 15:52:48 UTC | connect.c: allow ssh://user@[2001:db8::1]/repo.git The ssh:// syntax was added in 2386d658 (Add first cut at "git protocol" connect logic., 2005-07-13), it accepted ssh://user@2001:db8::1/repo.git, which is now legacy. Over the years the parser was improved to support [] and port numbers, but the combination of ssh://user@[2001:db8::1]:222/repo.git did never work. The only only way to use a user name, a literall IPV6 address and a port number was ssh://[user@2001:db8::1]:222/repo.git (Thanks to Christian Taube <lists@hcf.yourweb.de> for reporting this long standing issue) New users would use ssh://user@[2001:db8::1]:222/repo.git, so change the parser to handle it correctly. Support the old legacy URLs as well, to be backwards compatible, and avoid regressions for users which upgrade an existing installation to a later Git version. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:02:59 UTC |
2ce63e9 | René Scharfe | 21 February 2015, 19:55:22 UTC | sha1_name: use strlcpy() to copy strings Use strlcpy() instead of calling strncpy() and then setting the last byte of the target buffer to NUL explicitly. This shortens and simplifies the code a bit. Signed-of-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:01:38 UTC |
68d6d6e | René Scharfe | 21 February 2015, 19:53:09 UTC | pretty: use starts_with() to check for a prefix Simplify the code and avoid duplication by using starts_with() instead of strlen() and strncmp() to check if a line starts with "encoding ". Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:01:37 UTC |
008d5d0 | René Scharfe | 21 February 2015, 19:51:28 UTC | for-each-ref: use skip_prefix() to avoid duplicate string comparison Use skip_prefix() to get the part after "color:" (if present) and only compare it with "reset" instead of comparing the whole string again. This gets rid of the duplicate "color:" part of the string constant. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:01:37 UTC |
2ae7f90 | René Scharfe | 21 February 2015, 19:49:58 UTC | connect: use strcmp() for string comparison Get rid of magic string length constants and simply compare the strings using strcmp(). This makes the intent of the code a bit clearer. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 February 2015, 20:01:37 UTC |
afb5de7 | Matthieu Moy | 20 February 2015, 19:32:21 UTC | Documentation/git-am.txt: mention mailinfo.scissors config variable It was already documented, but the user had to follow the link to git-mailinfo.txt to find it. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 February 2015, 23:09:23 UTC |
d5c4b18 | Matthieu Moy | 20 February 2015, 19:32:20 UTC | Documentation/config.txt: document mailinfo.scissors The variable was documented in git-mailinfo.txt, but not in config.txt. The detailed documentation is still the one of --scissors in git-mailinfo.txt, but we give enough information here to let the user understand what it is about, and to make it easy to find it (e.g. searching ">8" and "8<" finds it). Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 February 2015, 23:07:19 UTC |
ef2956a | Alexander Kuleshov | 18 February 2015, 17:32:20 UTC | Git.pm: two minor typo fixes Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 February 2015, 20:29:00 UTC |
f3f4077 | Junio C Hamano | 18 February 2015, 19:53:17 UTC | Post 2.3 cycle (batch #3) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 February 2015, 19:53:17 UTC |
74f45df | Junio C Hamano | 18 February 2015, 19:45:03 UTC | Merge branch 'jc/push-cert' "git push --signed" gave an incorrectly worded error message when the other side did not support the capability. * jc/push-cert: transport-helper: fix typo in error message when --signed is not supported | 18 February 2015, 19:45:03 UTC |
ca00db0 | Junio C Hamano | 18 February 2015, 19:45:02 UTC | Merge branch 'jk/decimal-width-for-uintmax' We didn't format an integer that wouldn't fit in "int" but in "uintmax_t" correctly. * jk/decimal-width-for-uintmax: decimal_width: avoid integer overflow | 18 February 2015, 19:45:02 UTC |
de15bdb | Junio C Hamano | 18 February 2015, 19:45:01 UTC | Merge branch 'jk/config-no-ungetc-eof' Reading configuration from a blob object, when it ends with a lone CR, use to confuse the configuration parser. * jk/config-no-ungetc-eof: config_buf_ungetc: warn when pushing back a random character config: do not ungetc EOF | 18 February 2015, 19:45:01 UTC |
2c1f554 | Junio C Hamano | 18 February 2015, 19:45:00 UTC | Merge branch 'jk/pack-bitmap' The pack bitmap support did not build with older versions of GCC. * jk/pack-bitmap: ewah: fix building with gcc < 3.4.0 | 18 February 2015, 19:45:00 UTC |
db30b83 | Junio C Hamano | 18 February 2015, 19:44:59 UTC | Merge branch 'jc/remote-set-url-doc' Clarify in the documentation that "remote.<nick>.pushURL" and "remote.<nick>.URL" are there to name the same repository accessed via different transports, not two separate repositories. * jc/remote-set-url-doc: Documentation/git-remote.txt: stress that set-url is not for triangular | 18 February 2015, 19:44:59 UTC |
d3e73b5 | Junio C Hamano | 18 February 2015, 19:44:58 UTC | Merge branch 'ch/new-gpg-drops-rfc-1991' Older GnuPG implementations may not correctly import the keyring material we prepare for the tests to use. * ch/new-gpg-drops-rfc-1991: t/lib-gpg: sanity-check that we can actually sign t/lib-gpg: include separate public keys in keyring.gpg | 18 February 2015, 19:44:58 UTC |
f18e389 | Junio C Hamano | 18 February 2015, 19:44:57 UTC | Merge branch 'ye/http-accept-language' Using environment variable LANGUAGE and friends on the client side, HTTP-based transports now send Accept-Language when making requests. * ye/http-accept-language: http: add Accept-Language header if possible | 18 February 2015, 19:44:57 UTC |
c2d081c | Junio C Hamano | 18 February 2015, 19:44:56 UTC | Merge branch 'av/wincred-with-at-in-username-fix' The credential helper for Windows (in contrib/) used to mishandle a user name with an at-sign in it. * av/wincred-with-at-in-username-fix: wincred: fix get credential if username has "@" | 18 February 2015, 19:44:56 UTC |
dc8edc8 | René Scharfe | 15 February 2015, 18:33:52 UTC | daemon: use callback to build interpolated path Provide a callback function for strbuf_expand() instead of using the helper strbuf_expand_dict_cb(). While the resulting code is longer, it only looks up the canonical hostname and IP address if at least one of the placeholders %CH and %IP are used with --interpolated-path. Use a struct for passing the directory to the callback function instead of passing it directly to avoid having to cast away its const qualifier. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 21:40:49 UTC |
edef953 | René Scharfe | 15 February 2015, 18:31:41 UTC | daemon: look up client-supplied hostname lazily Look up canonical hostname and IP address using getaddrinfo(3) or gethostbyname(3) only if --interpolated-path or --access-hook were specified. Do that by introducing getter functions for canon_hostname and ip_address and using them for all read accesses. These wrappers call the new helper lookup_hostname(), which sets the variables only at its first call. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 21:40:36 UTC |
b485373 | Jeff King | 17 February 2015, 19:09:24 UTC | daemon: sanitize incoming virtual hostname We use the daemon_avoid_alias function to make sure that the pathname the user gives us is sane. However, after applying that check, we might then interpolate the path using a string given by the server admin, but which may contain more untrusted data from the client. We should be sure to sanitize this data, as well. We cannot use daemon_avoid_alias here, as it is more strict than we need in requiring a leading '/'. At the same time, we can be much more strict here. We are interpreting a hostname, which should not contain slashes or excessive runs of dots, as those things are not allowed in DNS names. Note that in addition to cleansing the hostname field, we must check the "canonical hostname" (%CH) as well as the port (%P), which we take as a raw string. For the canonical hostname, this comes from an actual DNS lookup on the accessed IP, which makes it a much less likely vector for problems. But it does not hurt to sanitize it in the same way. Unfortunately we cannot test this case easily, as it would involve a custom hostname lookup. We do not need to check %IP, as it comes straight from inet_ntop, so must have a sane form. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 21:15:30 UTC |
5248f2d | Jeff King | 17 February 2015, 08:40:57 UTC | t5570: test git-daemon's --interpolated-path option We did not test this at all; let's just give a basic sanity check that we can find a path based on virtual hosting, and that the downcase canonicalization works. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 21:15:07 UTC |
94bc83c | Jeff King | 17 February 2015, 08:37:35 UTC | git_connect: let user override virtual-host we send to daemon When we connect to a git-daemon at a given host and port, we actually send the string "localhost:9418" to the other side, which allows it to do virtual-hosting lookups. For testing and debugging, we'd like to be able to send arbitrary strings, rather than the hostname we actually connected to. Using "insteadOf" config does not work for this purpose, as the hostname determination happens at a very low level, right before we feed the hostname to our lookup routines. You could use /etc/hosts or similar to get around this, but we cannot do that portably from our test suite. Instead, this patch provides an environment variable that can be used to send an arbitrary string. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 21:15:07 UTC |
d1dd721 | Michael Haggerty | 17 February 2015, 17:00:23 UTC | refs.h: remove duplication in function docstrings Add more information to the comment introducing the four reference transaction update functions, so that each function's docstring doesn't have to repeat it. Add a pointer from the individual functions' docstrings to the introductory comment. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:25:18 UTC |
4b7b520 | Michael Haggerty | 17 February 2015, 17:00:22 UTC | update_ref(): improve documentation Add a docstring for update_ref(), emphasizing its similarity to ref_transaction_update(). Rename its parameters to match those of ref_transaction_update(). Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:25:03 UTC |
1618033 | Michael Haggerty | 17 February 2015, 17:00:21 UTC | ref_transaction_verify(): new function to check a reference's value If NULL is passed to ref_transaction_update()'s new_sha1 parameter, then just verify old_sha1 (under lock) without trying to change the new value of the reference. Use this functionality to add a new function ref_transaction_verify(), which checks the current value of the reference under lock but doesn't change it. Use ref_transaction_verify() in the implementation of "git update-ref --stdin"'s "verify" command to avoid the awkward need to "update" the reference to its existing value. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:24:59 UTC |
6029459 | Michael Haggerty | 17 February 2015, 17:00:20 UTC | ref_transaction_delete(): check that old_sha1 is not null_sha1 It makes no sense to delete a reference that is already known not to exist. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:24:55 UTC |
f04c5b5 | Michael Haggerty | 17 February 2015, 17:00:19 UTC | ref_transaction_create(): check that new_sha1 is valid Creating a reference requires a new_sha1 that is not NULL and not null_sha1. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:24:48 UTC |
a933c23 | Michael Haggerty | 17 February 2015, 17:00:18 UTC | commit: avoid race when creating orphan commits If HEAD doesn't point at anything during the initial check, then we should make sure that it *still* doesn't point at anything when we are ready to update the reference. Otherwise, another process might commit while we are working (e.g., while we are waiting for the user to edit the commit message) and we will silently overwrite it. This fixes a failing test in t7516. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:24:20 UTC |
a908a31 | Michael Haggerty | 17 February 2015, 17:00:17 UTC | commit: add tests of commit races Committing involves the following steps: 1. Determine the current value of HEAD (if any). 2. Create the new commit object. 3. Update HEAD. Please note that step 2 can take arbitrarily long, because it might involve the user editing a commit message. If a second process sneaks in a commit during step 2, then the first commit process should fail. This is usually done correctly, because step 3 verifies that HEAD still points at the same commit that it pointed to during step 1. However, if there is a race when creating an *orphan* commit, then the test in step 3 is skipped. Add tests for proper handling of such races. One of the new tests fails. It will be fixed in a moment. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:23:54 UTC |
fb5a6bb | Michael Haggerty | 17 February 2015, 17:00:16 UTC | ref_transaction_delete(): remove "have_old" parameter Instead, verify the reference's old value if and only if old_sha1 is non-NULL. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:23:48 UTC |
1d147bd | Michael Haggerty | 17 February 2015, 17:00:15 UTC | ref_transaction_update(): remove "have_old" parameter Instead, verify the reference's old value if and only if old_sha1 is non-NULL. ref_transaction_delete() will get the same treatment in a moment. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:22:50 UTC |
8df4e51 | Michael Haggerty | 17 February 2015, 17:00:14 UTC | struct ref_update: move "have_old" into "flags" Instead of having a separate have_old field, record this boolean value as a bit in the "flags" field. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:22:42 UTC |
fec14ec | Michael Haggerty | 17 February 2015, 17:00:13 UTC | refs.c: change some "flags" to "unsigned int" Change the following functions' "flags" arguments from "int" to "unsigned int": * ref_transaction_update() * ref_transaction_create() * ref_transaction_delete() * update_ref() * delete_ref() * lock_ref_sha1_basic() Also change the "flags" member in "struct ref_update" to unsigned. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 19:22:29 UTC |
bc1c2ca | Stefan Beller | 17 February 2015, 18:06:14 UTC | read-cache.c: free cache entry when refreshing fails This fixes a memory leak when building the cache entries as refresh_cache_entry may decide to return NULL, but it does not free the cache entry structure which was passed in as an argument. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 18:42:43 UTC |
3188ab3 | Junio C Hamano | 17 February 2015, 18:22:17 UTC | Post 2.3 cycle (batch #2) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 February 2015, 18:22:17 UTC |
a158904 | Junio C Hamano | 17 February 2015, 18:15:30 UTC | Merge branch 'mg/push-repo-option-doc' The "git push" documentation made the "--repo=<there>" option easily misunderstood. * mg/push-repo-option-doc: git-push.txt: document the behavior of --repo | 17 February 2015, 18:15:31 UTC |
445bb5b | Junio C Hamano | 17 February 2015, 18:15:29 UTC | Merge branch 'jc/t4122-use-test-write-lines' * jc/t4122-use-test-write-lines: t4122: use test_write_lines from test-lib-functions | 17 February 2015, 18:15:29 UTC |
fccf4a0 | Junio C Hamano | 17 February 2015, 18:15:28 UTC | Merge branch 'jk/status-read-branch-name-fix' Code to read branch name from various files in .git/ directory would have misbehaved if the code to write them left an empty file. * jk/status-read-branch-name-fix: read_and_strip_branch: fix typo'd address-of operator | 17 February 2015, 18:15:29 UTC |