summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-08-13fetch-pack: mention server version with verbose outputLibravatar Jeff King1-1/+8
Fetch-pack's verbose mode is more of a debugging mode (and in fact takes two "-v" arguments to trigger via the porcelain layer). Let's mention the server version as another possible item of interest. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-13parse_feature_request: make it easier to see feature valuesLibravatar Jeff King2-10/+39
We already take care to parse key/value capabilities like "foo=bar", but the code does not provide a good way of actually finding out what is on the right-hand side of the "=". A server using "parse_feature_request" could accomplish this with some extra parsing. You must skip past the "key" portion manually, check for "=" versus NUL or space, and then find the length by searching for the next space (or NUL). But clients can't even do that, since the "server_supports" interface does not even return the pointer. Instead, let's have our parser share more information by providing a pointer to the value and its length. The "parse_feature_value" function returns a pointer to the feature's value portion, along with the length of the value. If the feature is missing, NULL is returned. If it does not have an "=", then a zero-length value is returned. Similarly, "server_feature_value" behaves in the same way, but always checks the static server_feature_list variable. We can then implement "server_supports" in terms of "server_feature_value". We cannot implement the original "parse_feature_request" in terms of our new function, because it returned a pointer to the beginning of the feature. However, no callers actually cared about the value of the returned pointer, so we can simplify it to a boolean just as we do for "server_supports". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-10fetch-pack: do not ask for unadvertised capabilitiesLibravatar Junio C Hamano1-0/+6
In the same spirit as the previous fix, stop asking for thin-pack, no-progress and include-tag capabilities when the other end does not claim to support them. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-10do not send client agent unless server does firstLibravatar Jeff King2-4/+15
Commit ff5effdf taught both clients and servers of the git protocol to send an "agent" capability that just advertises their version for statistics and debugging purposes. The protocol-capabilities.txt document however indicates that the client's advertisement is actually a response, and should never include capabilities not mentioned in the server's advertisement. Adding the unconditional advertisement in the server programs was OK, then, but the clients broke the protocol. The server implementation of git-core itself does not care, but at least one does: the Google Code git server (or any server using Dulwich), will hang up with an internal error upon seeing an unknown capability. Instead, each client must record whether we saw an agent string from the server, and respond with its agent only if the server mentioned it first. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-10send-pack: fix capability-sending logicLibravatar Jeff King1-1/+1
If we have capabilities to send to the server, we send the regular "want" line followed by a NUL, then the capabilities; otherwise, we do not even send the NUL. However, when checking whether we want to send the "quiet" capability, we check args->quiet, which is wrong. That flag only tells us whether the client side wanted to be quiet, not whether the server supports it (originally, in c207e34f, it meant both; however, that was later split into two flags by 01fdc21f). We still check the right flag when actually printing "quiet", so this could only have two effects: 1. We might send the trailing NUL when we do not otherwise need to. In theory, an antique pre-capability implementation of git might choke on this (since the client is instructed never to respond with capabilities that the server has not first advertised). 2. We might also want to send the quiet flag if the args->progress flag is false, but this code path would not trigger in that instance. In practice, it almost certainly never matters. The report-status capability dates back to 2005. Any real-world server is going to advertise that, and we will always respond with at least that capability. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-03include agent identifier in capability stringLibravatar Jeff King6-6/+38
Instead of having the client advertise a particular version number in the git protocol, we have managed extensions and backwards compatibility by having clients and servers advertise capabilities that they support. This is far more robust than having each side consult a table of known versions, and provides sufficient information for the protocol interaction to complete. However, it does not allow servers to keep statistics on which client versions are being used. This information is not necessary to complete the network request (the capabilities provide enough information for that), but it may be helpful to conduct a general survey of client versions in use. We already send the client version in the user-agent header for http requests; adding it here allows us to gather similar statistics for non-http requests. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-03http: get default user-agent from git_user_agentLibravatar Jeff King2-5/+3
This means we will respect the GIT_USER_AGENT build-time configuration and run-time environment variable. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-03version: add git_user_agent functionLibravatar Jeff King3-0/+26
This is basically a fancy way of saying "git/$GIT_VERSION", except that it is overridable at build-time and through the environment. Which means that people who don't want to advertise their git version (for privacy or security reasons) can tweak it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-03move git_version_string into version.cLibravatar Jeff King7-5/+18
The global git_version_string currently lives in git.c, but doesn't have anything to do with the git wrapper. Let's move it into its own file, where it will be more appropriate to build more version-related functions. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-01Update draft release notes to 1.7.11Libravatar Junio C Hamano1-18/+14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-01Merge branch 'ef/maint-rebase-error-message'Libravatar Junio C Hamano2-1/+6
By Erik Faye-Lund * ef/maint-rebase-error-message: rebase: report invalid commit correctly
2012-06-01Merge branch 'nh/empty-rebase'Libravatar Junio C Hamano2-28/+75
* nh/empty-rebase: cherry-pick: regression fix for empty commits
2012-06-01Merge branch 'vr/rebase-autosquash-does-not-imply-i'Libravatar Junio C Hamano1-0/+1
"git rebase -p" used to pay attention to rebase.autosquash which was wrong. "git rebase -p -i" should, but "git rebase -p" by itself should not. By Vincent van Ravesteijn * vr/rebase-autosquash-does-not-imply-i: Do not autosquash in case of an implied interactive rebase
2012-06-01Merge branch 'mm/levenstein-penalize-deletion-less'Libravatar Junio C Hamano1-1/+1
"git tags" used to suggest "git stage" which was nonsense; it should have favored "git tag". Tweak the cost of deletion to correct it. By Matthieu Moy * mm/levenstein-penalize-deletion-less: Reduce cost of deletion in levenstein distance (4 -> 3)
2012-06-01Merge branch 'jl/submodule-report-new-path-once'Libravatar Junio C Hamano1-3/+4
"git submodule init" used to report "registered for path ..." even for submodules that were registered earlier. By Jens Lehmann * jl/submodule-report-new-path-once: submodules: print "registered for path" message only once
2012-06-01Sync with maintLibravatar Junio C Hamano3-2/+28
2012-06-01Start preparing for 1.7.10.4Libravatar Junio C Hamano3-2/+28
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-01Merge branch 'ef/http-o-depends-on-gvf' into maintLibravatar Junio C Hamano1-1/+1
A minor compilation fix. By Erik Faye-Lund * ef/http-o-depends-on-gvf: Makefile: add missing GIT-VERSION-FILE dependency
2012-06-01Merge git://github.com/git-l10n/git-poLibravatar Junio C Hamano6-634/+12887
By Jiang Xin (4) and others via Jiang Xin * git://github.com/git-l10n/git-po: l10n: Set nplurals of zh_CN.po from 1 to 2 l10n: zh_CN.po: translate 323 new messages l10n: zh.CN.po: update by msgmerge git.pot First release translation for Vietnamese Init translation for Vietnamese l10n: New it.po file with 504 translations Update Swedish translation (728t0f0u) l10n: Update git.pot (41 new messages)
2012-06-01Merge branch 'rs/maint-grep-F' into maintLibravatar Junio C Hamano5-24/+68
"git grep -e '$pattern'", unlike the case where the patterns are read from a file, did not treat individual lines in the given pattern argument as separate regular expressions as it should. By René Scharfe * rs/maint-grep-F: grep: stop leaking line strings with -f grep: support newline separated pattern list grep: factor out do_append_grep_pat() grep: factor out create_grep_pat()
2012-06-01Merge branch 'jk/ident-split-fix' into maintLibravatar Junio C Hamano2-1/+8
An author/committer name that is a single character was mishandled as an invalid name by mistake. By Jeff King * jk/ident-split-fix: fix off-by-one error in split_ident_line
2012-06-01Merge branch 'jk/pretty-commit-header-incomplete-line' into maintLibravatar Junio C Hamano1-1/+4
By Jeff King * jk/pretty-commit-header-incomplete-line: avoid segfault when reading header of malformed commits
2012-06-01Merge branch 'jk/format-person-part-buffer-limit' into maintLibravatar Junio C Hamano1-2/+4
By Jeff King * jk/format-person-part-buffer-limit: pretty: avoid buffer overflow in format_person_part
2012-06-01Merge branch 'ap/checkout-no-progress-for-non-tty' into maintLibravatar Junio C Hamano1-2/+2
"git checkout" gave progress display even when the standard error stream was not connected to the tty, which made little sense. By Avery Pennarun * ap/checkout-no-progress-for-non-tty: checkout: no progress messages if !isatty(2).
2012-06-01Merge branch 'maint' of git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano1-247/+289
By Peter Krefting via Peter Krefting * 'maint' of git://github.com/git-l10n/git-po: Update Swedish translation (728t0f0u)
2012-06-01i18n: apply: split to fix a partial i18n messageLibravatar Jiang Xin1-4/+12
The 4th arg of "new mode (%o) of %s does not match old mode (%o)%s%s" is blank string or string " of ". Even mark the string " of " for a complete i18n, this message is still hard to translate right. Split it into two slight different messages would make l10n teams happy. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-01l10n: Set nplurals of zh_CN.po from 1 to 2Libravatar Jiang Xin1-10/+42
In most cases, plural-forms are unnecessary for Chinese. For example, "apple" and "apples" are the same in Chinese, they are both translated as "苹果". While there are exceptions, e.g., the plural form of "he", "she" and "it" is "they" in English. In Chinese, "他(he)", "她(she)", and "它(it)" have plural forms too, they are "他们", "她们", and "它们". But what makes 'nplurals=1' hard to work right for Chinese is: #: bundle.c:192 #, c-format msgid "The bundle requires this ref" msgid_plural "The bundle requires these %d refs" Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-06-01l10n: zh_CN.po: translate 323 new messagesLibravatar Jiang Xin1-473/+447
Update Simplified Chinese translation for 134 fuzzy, 189 new messages from Git v1.7.10.2-548-g9de96. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Signed-off-by: Zhuang Ya <zhuangya@me.com>
2012-05-31Makefile: add missing GIT-VERSION-FILE dependencyLibravatar Erik Faye-Lund1-1/+1
In 20fc9bc (Set HTTP user agent to git/GIT_VERSION, 2006-04-04), http.o started recording GIT_VERSION, but http.o wasn't added to the list of files that depends on GIT-VERSION-FILE. Fix this, so mofications to GIT-VERSION-FILE will result in an updated user-agent string. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-31l10n: zh.CN.po: update by msgmerge git.potLibravatar Jiang Xin1-363/+1887
Update of zh_CN.po: 134 fuzzy translations, 189 untranslated messages. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-05-31First release translation for VietnameseLibravatar Tran Ngoc Quan1-1818/+2006
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-05-31Init translation for VietnameseLibravatar Tran Ngoc Quan2-0/+5176
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-05-30rebase: report invalid commit correctlyLibravatar Erik Faye-Lund2-1/+6
In 9765b6a (rebase: align variable content, 2011-02-06), the code to error out was moved up one level. Unfortunately, one reference to a function parameter wasn't rewritten as it should, leading to the wrong parameter being errored on. This error was propagated by 71786f5 (rebase: factor out reference parsing, 2011-02-06) and merged in 78c6e0f (Merge branch 'mz/rebase', 2011-04-28). Correct this by reporting $onto_name istead. Reported-By: Manuela Hutter <manuelah@opera.com> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-30INSTALL: update asciidoc recommendationLibravatar Jeff King1-4/+2
Since commit 6cf378f (docs: stop using asciidoc no-inline-literal), we no longer support asciidoc versions less than 8.4.1, which introduced inline literals. Note this in the INSTALL document. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-30l10n: New it.po file with 504 translationsLibravatar Marco Paolone2-0/+5148
Signed-off-by: Marco Paolone <marcopaolone@gmail.com>
2012-05-29cherry-pick: regression fix for empty commitsLibravatar Junio C Hamano2-28/+75
The earlier "--keep-redundant-commit" series broke "cherry-pick" that is given a commit whose change is already in the current history. Such a cherry-pick would result in an empty change, and should stop with an error, telling the user that conflict resolution may have made the result empty (which is exactly what is happening), but we silently dropped the change on the floor without any message nor non-zero exit code. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29submodules: print "registered for path" message only onceLibravatar Jens Lehmann1-3/+4
Since 2cd9de3e (submodule add: always initialize .git/config entry) the message "Submodule '\$name' (\$url) registered for path '\$sm_path'" is printed every time cmd_init() is called, e.g. each time "git submodule update" is used with the --init option. This was not intended and leads to bogus output which can confuse users and build systems. Apart from that the $url variable was not set after the first run which did the actual initialization and only "()" was printed in subsequent runs where "($url)" was meant to inform the user about the upstream repo. Fix that by moving the say command in question into the if block where the url is initialized, restoring the behavior that was in place before the 2cd9de3e commit. While at it also remove the comment which still describes the logic used before 2cd9de3e and add a comment about how things work now. Reported-by: Nicolas Viennot and Sid Nair <nicolas@viennot.com> Reported-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29Merge git://bogomips.org/git-svnLibravatar Junio C Hamano4-671/+831
By Jonathan Nieder via Eric Wong * git://bogomips.org/git-svn: git-svn: make Git::SVN::Fetcher a separate file git-svn: rename SVN::Git::* packages to Git::SVN::* git-svn: move Git::SVN::Prompt into its own file
2012-05-29t5701: modernize styleLibravatar Jeff King1-53/+20
This test is pretty old and did not follow some of our more modern best practices. In particular: 1. It chdir'd all over the place, leaving later tests to deal with the fallout. Do our chdirs in subshells instead. 2. It did not use test_must_fail. 3. It did not use test_line_count. 4. It checked for the non-existence of a ref by looking in the .git/refs directory (since we pack refs during clone these days, this will always be succeed, making the test useless). Note that one call to "-e .git/refs/..." remains, because it is checking for the existence of a symbolic ref, not a ref itself. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29Merge branch 'va/git-p4-test'Libravatar Junio C Hamano1-3/+107
By Vitor Antunes * va/git-p4-test: git-p4: Clean up branch test cases git-p4: Verify detection of "empty" branch creation git-p4: Test changelists touching two branches
2012-05-29Merge branch 'jk/ident-gecos-strbuf'Libravatar Junio C Hamano19-238/+176
Fixes quite a lot of brokenness when ident information needs to be taken from the system and cleans up the code. By Jeff King * jk/ident-gecos-strbuf: (22 commits) format-patch: do not use bogus email addresses in message ids ident: reject bogus email addresses with IDENT_STRICT ident: rename IDENT_ERROR_ON_NO_NAME to IDENT_STRICT format-patch: use GIT_COMMITTER_EMAIL in message ids ident: let callers omit name with fmt_indent ident: refactor NO_DATE flag in fmt_ident ident: reword empty ident error message format-patch: refactor get_patch_filename ident: trim whitespace from default name/email ident: use a dynamic strbuf in fmt_ident ident: use full dns names to generate email addresses ident: report passwd errors with a more friendly message drop length limitations on gecos-derived names and emails ident: don't write fallback username into git_default_name fmt_ident: drop IDENT_WARN_ON_NO_NAME code format-patch: use default email for generating message ids ident: trim trailing newline from /etc/mailname move git_default_* variables to ident.c move identity config parsing to ident.c fmt-merge-msg: don't use static buffer in record_person ...
2012-05-29Merge branch 'jk/fetch-pack-remove-dups-optim'Libravatar Junio C Hamano3-22/+54
The way "fetch-pack" that is given multiple references to fetch tried to remove duplicates was very inefficient. By Jeff King * jk/fetch-pack-remove-dups-optim: fetch-pack: sort incoming heads list earlier fetch-pack: avoid quadratic loop in filter_refs fetch-pack: sort the list of incoming refs add sorting infrastructure for list refs fetch-pack: avoid quadratic behavior in remove_duplicates fetch-pack: sort incoming heads
2012-05-29Merge branch 'rs/refs-string-slice'Libravatar Junio C Hamano1-29/+41
Avoid unnecessary temporary allocations while looking for matching refs inside refs API. By René Scharfe (3) and Junio C Hamano (1) * rs/refs-string-slice: refs: do not create ref_entry when searching refs: use strings directly in find_containing_dir() refs: convert parameter of create_dir_entry() to length-limited string refs: convert parameter of search_ref_dir() to length-limited string
2012-05-29Merge branch 'mh/fetch-pack-constness'Libravatar Junio C Hamano1-74/+71
Tighten constness of some local variables in a callchain. By Michael Haggerty * mh/fetch-pack-constness: cmd_fetch_pack(): respect constness of argv parameter cmd_fetch_pack(): combine the loop termination conditions cmd_fetch_pack(): handle non-option arguments outside of the loop cmd_fetch_pack(): declare dest to be const
2012-05-29Merge branch 'mh/ref-api-lazy-loose'Libravatar Junio C Hamano1-2/+7
The code to lazily read loose refs unnecessarily read the refs in a subhierarchy by mistake when we free the data for the subhierarchy. By Michael Haggerty * mh/ref-api-lazy-loose: free_ref_entry(): do not trigger reading of loose refs
2012-05-29Merge branch 'ng/pack-objects-cleanup'Libravatar Junio C Hamano2-152/+174
By Nguyễn Thái Ngọc Duy * ng/pack-objects-cleanup: pack-objects: refactor write_object() into helper functions pack-objects, streaming: turn "xx >= big_file_threshold" to ".. > .."
2012-05-29Do not autosquash in case of an implied interactive rebaseLibravatar Vincent van Ravesteijn1-0/+1
The option to autosquash is only used in case of an interactive rebase. When merges are preserved, rebase uses an interactive rebase internally, but in this case autosquash should still be disabled. Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29Reduce cost of deletion in levenstein distance (4 -> 3)Libravatar Matthieu Moy1-1/+1
Before this patch, a character deletion has the same cost as 2 swaps, or 4 additions, so Git prefers suggesting a completely scrambled command name to removing a character. For example, "git tags" suggests "stage", but not "tag". By setting the deletion cost to 3, we keep it higher than swaps or additions, but prefer 1 deletion to 2 swaps. "git tags" now suggests "tag" in addition to staged. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29git-p4: Clean up branch test casesLibravatar Vitor Antunes1-3/+1
Correct submit description in one test and remove not required commands from another. Signed-off-by: Vitor Antunes <vitor.hda@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-29git-p4: Verify detection of "empty" branch creationLibravatar Vitor Antunes1-0/+54
Current implementation of new branch parent detection works on the principle that the new branch is a complete integration, with no changes, of the original files. This test shows this deficiency in the particular case when the new branch is created from a subset of the original files. Signed-off-by: Vitor Antunes <vitor.hda@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>