summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-08-22Merge branch 'jc/maint-rev-list-topo-doc'Libravatar Junio C Hamano1-7/+24
It was unclear what "--topo-order" was really about in the documentation. It is not just about "children before parent", but also about "don't mix lineages". * jc/maint-rev-list-topo-doc: rev-list docs: clarify --topo-order description
2012-08-22Merge branch 'hv/coding-guidelines'Libravatar Junio C Hamano1-0/+8
In earlier days, "imitate the style in the neibouring code" was sufficient to keep the coherent style, but over time some parts of the codebase have drifted enough to make it ineffective. * hv/coding-guidelines: Documentation/CodingGuidelines: spell out more shell guidelines
2012-08-22Merge branch 'jk/check-docs-update'Libravatar Junio C Hamano6-29/+18
Simplify "make check-docs" implementation and update its coverage. * jk/check-docs-update: check-docs: get documented command list from Makefile check-docs: drop git-help special-case check-docs: list git-gui as a command check-docs: factor out command-list command-list: mention git-credential-* helpers command-list: add git-sh-i18n check-docs: update non-command documentation list check-docs: mention gitweb specially
2012-08-22Merge branch 'jc/tag-doc'Libravatar Junio C Hamano7-16/+27
Our documentation used to assume having files in .git/refs/* directories was the only to have branches and tags, but that is not true for quite some time. * jc/tag-doc: Documentation: do not mention .git/refs/* directories
2012-08-22Merge branch 'js/gitweb-path-info-unquote'Libravatar Junio C Hamano1-0/+5
"gitweb" when used with PATH_INFO failed to notice directories with SP (and other characters that need URL-style quoting) in them. * js/gitweb-path-info-unquote: gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO
2012-08-22Merge branch 'tr/void-diff-setup-done'Libravatar Junio C Hamano13-32/+16
Remove unnecessary code. * tr/void-diff-setup-done: diff_setup_done(): return void
2012-08-22Merge branch 'tr/merge-recursive-flush'Libravatar Junio C Hamano1-18/+1
Remove unnecessary code. * tr/merge-recursive-flush: merge-recursive: eliminate flush_buffer() in favor of write_in_full()
2012-08-22Merge branch 'mm/die-with-dashdash-help'Libravatar Junio C Hamano1-3/+5
When the user gives an argument that can be taken as both a revision name and a pathname without disambiguating with "--", we used to give a help message "Use '--' to separate". The message has been clarified to show where that '--' goes on the command line. * mm/die-with-dashdash-help: setup: clarify error messages for file/revisions ambiguity
2012-08-22Merge branch 'tr/maint-send-email-2047'Libravatar Junio C Hamano2-4/+19
"git send-email" did not unquote encoded words that appear on the header correctly, and lost "_" from strings. * tr/maint-send-email-2047: send-email: improve RFC2047 quote parsing
2012-08-22Merge branch 'nd/index-errno'Libravatar Junio C Hamano1-5/+1
Assignments to errno before calling system functions that used to matter in the old code were left behind after the code structure changed sufficiently to make them useless. * nd/index-errno: read_index_from: remove bogus errno assignments
2012-08-22Merge branch 'mk/test-seq'Libravatar Junio C Hamano3-2/+23
Add a compatibility/utility function to the test framework. * mk/test-seq: tests: Introduce test_seq
2012-08-22Merge branch 'pg/maint-apply-remove-unused-variable'Libravatar Junio C Hamano1-1/+0
Remove an unused field. * pg/maint-apply-remove-unused-variable: apply: delete unused deflate_origlen from patch struct
2012-08-22Merge branch 'jc/test-prereq'Libravatar Junio C Hamano6-205/+233
Teaches the test framework to probe rarely used prerequistes lazily, and make use of it for detecting SYMLINKS, CASE_INSENSITIVE_FS and NKD/NKC MacOS x gotcha. * jc/test-prereq: t3910: use the UTF8_NFD_TO_NFC test prereq test-lib: provide UTF8 behaviour as a prerequisite t0050: use the SYMLINKS test prereq t0050: use the CASE_INSENSITIVE_FS test prereq test-lib: provide case insensitivity as a prerequisite test: allow prerequisite to be evaluated lazily test: rename $satisfied to $satisfied_prereq
2012-08-22Merge branch 'ms/git-svn-1.7'Libravatar Junio C Hamano12-174/+489
A series by Michael Schwern via Eric to update git-svn to revamp the way URLs are internally passed around, to make it work with SVN 1.7. * ms/git-svn-1.7: git-svn: remove ad-hoc canonicalizations git-svn: canonicalize newly-minted URLs git-svn: introduce add_path_to_url function git-svn: canonicalize earlier git-svn: replace URL escapes with canonicalization git-svn: attempt to mimic SVN 1.7 URL canonicalization t9107: fix typo t9118: workaround inconsistency between SVN versions Git::SVN{,::Ra}: canonicalize earlier git-svn: path canonicalization uses SVN API Git::SVN::Utils: remove irrelevant comment git-svn: add join_paths() to safely concatenate paths git-svn: factor out _collapse_dotdot function git-svn: use SVN 1.7 to canonicalize when possible git-svn: move canonicalization to Git::SVN::Utils use Git::SVN{,::RA}->url accessor globally use Git::SVN->path accessor globally Git::SVN::Ra: use accessor for URLs Git::SVN: use accessor for URLs internally Git::SVN: use accessors internally for path
2012-08-22t3910: use the UTF8_NFD_TO_NFC test prereqLibravatar Michael J Gruber1-146/+135
Besides reusing the new test prerequisite, this fixes also the issue that the current output is not TAP compliant and produces the output "no reason given" [for skipping]. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-19Git 1.7.12Libravatar Junio C Hamano2-1/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-17Merge branch 'jc/doc-git-updates' (early part)Libravatar Junio C Hamano1-1/+1
* 'jc/doc-git-updates' (early part): Documentation: update URL for formatted pages
2012-08-17Documentation: update URL for formatted pagesLibravatar Junio C Hamano1-1/+1
The one at kernel.org has not been updated for quite a while and can no longer be called "the latest". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-16Merge git://github.com/git-l10n/git-po to update Swedish translationLibravatar Junio C Hamano1-6/+6
* git://github.com/git-l10n/git-po: l10n: Fixes to Swedish translation
2012-08-16l10n: Fixes to Swedish translationLibravatar Peter Krefting1-6/+6
Tersify texts overflowing an 80-character terminal. Fix spelling mistakes. Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2012-08-15Git 1.7.12-rc3Libravatar Junio C Hamano2-11/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15Sync with 1.7.11.5Libravatar Junio C Hamano2-1/+10
2012-08-15Git 1.7.11.5Libravatar Junio C Hamano3-2/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15Merge branch 'rj/maint-grep-remove-redundant-test' into maintLibravatar Junio C Hamano1-11/+0
* rj/maint-grep-remove-redundant-test: t7810-*.sh: Remove redundant test
2012-08-15Merge branch 'hv/link-alt-odb-entry' into maintLibravatar Junio C Hamano1-1/+1
* hv/link-alt-odb-entry: link_alt_odb_entry: fix read over array bounds reported by valgrind
2012-08-15rev-list docs: clarify --topo-order descriptionLibravatar Junio C Hamano1-7/+24
It was unclear what "--topo-order" was really about in the documentation. It is not just about "children before parent", but also about "don't mix lineages". Reword the description for both "--date-order" and "--topo-order", and add an illustration to it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFOLibravatar Jay Soffian1-0/+5
When gitweb is used as a DirectoryIndex, it attempts to strip PATH_INFO on its own, as $cgi->url() fails to do so. However, it fails to account for the fact that PATH_INFO has already been URL-decoded by the web server, but the value returned by $cgi->url() has not been. This causes the stripping to fail whenever the URL contains encoded characters. To see this in action, setup gitweb as a DirectoryIndex and then use it on a repository with a directory containing a space in the name. Navigate to tree view, examine the gitweb generated html and you'll see a link such as: <a href="/test.git/tree/HEAD:/directory with spaces">directory with spaces</a> When clicked on, the browser will URL-encode this link, giving a $cgi->url() of the form: /test.git/tree/HEAD:/directory%20with%20spaces While PATH_INFO is: /test.git/tree/HEAD:/directory with spaces Fix this by calling unescape() on both $my_url and $my_uri before stripping PATH_INFO from them. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15Documentation/CodingGuidelines: spell out more shell guidelinesLibravatar Heiko Voigt1-0/+8
In earlier days, "imitate the style in the neibouring code" was sufficient to keep the coherent style, but over time some parts of the codebase have drifted enough to make it ineffective. Spell some of the guidelines out. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-10git svn: reset invalidates the memoized mergeinfo cachesLibravatar Peter Baumann2-2/+103
Since v1.7.0-rc2~11 (git-svn: persistent memoization, 2010-01-30), git-svn has maintained some private per-repository caches in .git/svn/.caches to avoid refetching and recalculating some mergeinfo-related information with every 'git svn fetch'. This memoization can cause problems, e.g consider the following case: SVN repo: ... - a - b - c - m <- trunk \ / d - e <- branch1 The Git import of the above repo is at commit 'a' and doesn't know about the branch1. In case of an 'git svn rebase', only the trunk of the SVN repo is imported. During the creation of the git commit 'm', git svn uses the svn:mergeinfo property and tries to find the corresponding git commit 'e' to create 'm' with 'c' and 'e' as parents. But git svn rebase only imports the current branch so commit 'e' is not imported. Therefore git svn fails to create commit 'm' as a merge commit, because one of its parents is not known to git. The imported history looks like this: ... - a - b - c - m <- trunk A later 'git svn fetch' to import all branches can't rewrite the commit 'm' to add 'e' as a parent and to make it a real git merge commit, because it was already imported. That's why the imported history misses the merge and looks like this: ... - a - b - c - m <- trunk \ d - e <- branch1 Right now the only known workaround for importing 'm' as a merge is to force reimporting 'm' again from SVN, e.g. via $ git svn reset --revision $(git find-rev $c) $ git svn fetch Sadly, this is where the behavior has regressed: git svn reset doesn't invalidate the old mergeinfo cache, which is no longer valid for the reimport, which leads to 'm' beeing imprted with only 'c' as parent. As solution to this problem, this commit invalidates the mergeinfo cache to force correct recalculation of the parents. During development of this patch, several ways for invalidating the cache where considered. One of them is to use Memoize::flush_cache, which will call the CLEAR method on the underlying Memoize persistency implementation. Sadly, neither Memoize::Storable nor the newer Memoize::YAML module introduced in 68f532f4ba888 could optionally be used implement the CLEAR method, so this is not an option. Reseting the internal hash used to store the memoized values has the same problem, because it calls the non-existing CLEAR method of the underlying persistency layer, too. Considering this and taking into account the different implementations of the memoization modules, where Memoize::Storable is not in our control, implementing the missing CLEAR method is not an option, at least not if Memoize::Storable is still used. Therefore the easiest solution to clear the cache is to delete the files on disk in 'git svn reset'. Normally, deleting the files behind the back of the memoization module would be problematic, because the in-memory representation would still exist and contain wrong data. Fortunately, the memoization is active in memory only for a small portion of the code. Invalidating the cache by deleting the files on disk if it isn't active should be safe. Signed-off-by: Peter Baumann <waste.manager@gmx.de> Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-08-10git svn: handle errors and concurrent commits in dcommitLibravatar Robert Luberda2-19/+271
dcommit didn't handle errors returned by SVN and coped very poorly with concurrent commits that appear in SVN repository while dcommit was running. In both cases it left git repository in inconsistent state: index (which was reset with `git reset --mixed' after a successful commit to SVN) no longer matched the checkouted tree, when the following commit failed or needed to be rebased. See http://bugs.debian.org/676904 for examples. This patch fixes the issues by: - introducing error handler for dcommit. The handler will try to rebase or reset working tree before returning error to the end user. dcommit_rebase function was extracted out of cmd_dcommit to ensure consistency between cmd_dcommit and the error handler. - calling `git reset --mixed' only once after all patches are successfully committed to SVN. This ensures index is not touched for most of the time of dcommit run. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-08-09Merge git://github.com/git-l10n/git-poLibravatar Junio C Hamano5-580/+1375
L10n updates for 1.7.12-rc2 * 'master' of git://github.com/git-l10n/git-po: l10n: Update Swedish translation (1168t0f0u) l10n: de.po: translate 77 new messages l10n: vi.po: update one message l10n: zh_CN.po: update one translation l10n: Update one message in git.pot
2012-08-09l10n: Update Swedish translation (1168t0f0u)Libravatar Peter Krefting1-510/+903
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2012-08-08Merge branch 'bw/maint-1.7.9-solaris-getpass'Libravatar Junio C Hamano2-0/+2
The recent update to terminal I/O interface to get passwords &c interactively didn't quite work on Solaris. * bw/maint-1.7.9-solaris-getpass: Enable HAVE_DEV_TTY for Solaris terminal: seek when switching between reading and writing
2012-08-08check-docs: get documented command list from MakefileLibravatar Jeff King2-24/+5
The current code tries to get a list of documented commands by doing "ls Documentation/git*txt" and culling a bunch of special cases from the result. Looking for "git-*.txt" would be more accurate, but would miss a few commands like "gitweb" and "gitk". Fortunately, Documentation/Makefile already knows what this list is, so we can just ask it. Annoyingly, we still have to post-process its output a little, since make will print extra cruft like "GIT-VERSION-FILE is up to date" to stdout. Now that our list is accurate, we can remove all of the ugly special-cases. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08check-docs: drop git-help special-caseLibravatar Jeff King1-1/+0
The check-docs target special-cases git-help to avoid mentioning it as "documented but removed". This dates back to the early implementation of git-help, when its code was simply included inside git.c. These days it is a full-fledged builtin (in builtin/help.c) and does not need special-casing. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08check-docs: list git-gui as a commandLibravatar Jeff King1-2/+1
git-gui is already documented and mentioned in command-list, but adding it to the Makefile makes sure it is so. We also add its alias git-citool (which is also documented). As a result, we can drop them from the special case statement that avoids them being listed as "documented but does not exist". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08check-docs: factor out command-listLibravatar Jeff King1-2/+6
The check-docs command list is composed from several Makefile variables plus some special cases. Let's make the meaning of the list more obvious and avoid repeating ourselves by factoring it out. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08command-list: mention git-credential-* helpersLibravatar Jeff King4-3/+5
These commands were never added to the command-list. Adding them makes "make check-docs" run without complaint. While we're at it, let's capitalize the first letter of their one-line summaries to match the rest of the git manpages. The credential-cache--daemon command is somewhat special. It is already ignored by check-docs because it contains a "--", marking it as a non-interesting implementation detail. It is, in fact, documented, but since the documentation basically just redirects you to a more appropriate command anyway, let's explicitly omit it so it is not mentioned in git(1). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08command-list: add git-sh-i18nLibravatar Jeff King1-0/+1
This is in the same category as git-sh-setup. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08check-docs: update non-command documentation listLibravatar Jeff King1-0/+3
The check-docs target looks at Documentation/git*txt and complains if any entry does not have a matching command. Therefore we need to explicitly ignore any entries which are not meant to describe a command (like gitattributes.txt). This list has grown stale over time, so let's bring it up to date. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08check-docs: mention gitweb speciallyLibravatar Jeff King1-2/+2
Like gitk, gitweb is not listed in the usual Makefile variables and must be fed to check-docs specially. Otherwise check-docs thinks it is documented but removed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08Documentation: list git-credential in plumbing commandsLibravatar Matthieu Moy2-1/+2
Commit e30b2feb1b (Jun 24 2012, add 'git credential' plumbing command) forgot to add git-credential to command-list.txt, hence the command was not appearing in the documentation, making it hard for users to discover it. While we're there, capitalize the description line for git-crendential for consistency with other commands. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08Merge git://github.com/ralfth/git-po-deLibravatar Jiang Xin1-46/+442
* git://github.com/ralfth/git-po-de: l10n: de.po: translate 77 new messages
2012-08-07Git 1.7.12-rc2Libravatar Junio C Hamano2-5/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-07l10n: de.po: translate 77 new messagesLibravatar Ralf Thielow1-46/+442
Translate 77 new messages came from git.pot update in 3b6137f (l10n: Update git.pot (76 new, 4 removed messages)) and bb2ba06 (l10n: Update one message in git.pot). Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch>
2012-08-06Enable HAVE_DEV_TTY for SolarisLibravatar Ben Walton1-0/+1
Now that git_terminal_prompt can cleanly interact with /dev/tty on Solaris, enable HAVE_DEV_TTY so that this code path is used for credential reading instead of relying on the crippled getpass(). Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06terminal: seek when switching between reading and writingLibravatar Jeff King1-0/+1
When a stdio stream is opened in update mode (e.g., "w+"), the C standard forbids switching between reading or writing without an intervening positioning function. Many implementations are lenient about this, but Solaris libc will flush the recently-read contents to the output buffer. In this instance, that meant writing the non-echoed password that the user just typed to the terminal. Fix it by inserting a no-op fseek between the read and write. The opposite direction (writing followed by reading) is also disallowed, but our intervening fflush is an acceptable positioning function for that alternative. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-07l10n: vi.po: update one messageLibravatar Tran Ngoc Quan1-9/+11
* Translate message that updated from commit bb2ba06 Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-08-06Drop 1.7.11.x items from 1.7.12 release notesLibravatar Junio C Hamano1-13/+0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06Sync with maintLibravatar Junio C Hamano1-0/+28