OSDN Git Service
Vicent Marti [Thu, 24 Oct 2013 18:01:29 +0000 (14:01 -0400)]
pack-objects: factor out name_hash
As the pack-objects system grows beyond the single
pack-objects.c file, more parts (like the soon-to-exist
bitmap code) will need to compute hashes for matching
deltas. Factor out name_hash to make it available to other
files.
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vicent Marti [Thu, 24 Oct 2013 18:01:06 +0000 (14:01 -0400)]
pack-objects: refactor the packing list
The hash table that stores the packing list for a given `pack-objects`
run was tightly coupled to the pack-objects code.
In this commit, we refactor the hash table and the underlying storage
array into a `packing_data` struct. The functionality for accessing and
adding entries to the packing list is hence accessible from other parts
of Git besides the `pack-objects` builtin.
This refactoring is a requirement for further patches in this series
that will require accessing the commit packing list from outside of
`pack-objects`.
The hash table implementation has been minimally altered: we now
use table sizes which are always a power of two, to ensure a uniform
index distribution in the array.
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vicent Marti [Thu, 24 Oct 2013 18:00:36 +0000 (14:00 -0400)]
revindex: export new APIs
Allow users to efficiently lookup consecutive entries that are expected
to be found on the same revindex by exporting `find_revindex_position`:
this function takes a pointer to revindex itself, instead of looking up
the proper revindex for a given packfile on each call.
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 24 Oct 2013 17:59:49 +0000 (13:59 -0400)]
sha1write: make buffer const-correct
We are passed a "void *" and write it out without ever
touching it; let's indicate that by using "const".
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 23 Oct 2013 20:37:27 +0000 (13:37 -0700)]
Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 23 Oct 2013 20:36:57 +0000 (13:36 -0700)]
Sync with 'maint'
Junio C Hamano [Wed, 23 Oct 2013 20:34:39 +0000 (13:34 -0700)]
Almost 1.8.4.2 ;-)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 23 Oct 2013 20:33:08 +0000 (13:33 -0700)]
Merge branch 'jc/ls-files-killed-optim' into maint
"git ls-files -k" needs to crawl only the part of the working tree
that may overlap the paths in the index to find killed files, but
shared code with the logic to find all the untracked files, which
made it unnecessarily inefficient.
* jc/ls-files-killed-optim:
dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
t3010: update to demonstrate "ls-files -k" optimization pitfalls
ls-files -k: a directory only can be killed if the index has a non-directory
dir.c: use the cache_* macro to access the current index
Junio C Hamano [Wed, 23 Oct 2013 20:32:50 +0000 (13:32 -0700)]
Merge branch 'jh/checkout-auto-tracking' into maint
"git branch --track" had a minor regression in v1.8.3.2 and later
that made it impossible to base your local work on anything but a
local branch of the upstream repository you are tracking from.
* jh/checkout-auto-tracking:
t3200: fix failure on case-insensitive filesystems
branch.c: Relax unnecessary requirement on upstream's remote ref name
t3200: Add test demonstrating minor regression in
41c21f2
Refer to branch.<name>.remote/merge when documenting --track
t3200: Minor fix when preparing for tracking failure
t2024: Fix &&-chaining and a couple of typos
Junio C Hamano [Wed, 23 Oct 2013 20:32:17 +0000 (13:32 -0700)]
Merge branch 'nd/fetch-into-shallow' into maint
When there is no sufficient overlap between old and new history
during a "git fetch" into a shallow repository, objects that the
sending side knows the receiving end has were unnecessarily sent.
* nd/fetch-into-shallow:
Add testcase for needless objects during a shallow fetch
list-objects: mark more commits as edges in mark_edges_uninteresting
list-objects: reduce one argument in mark_edges_uninteresting
upload-pack: delegate rev walking in shallow fetch to pack-objects
shallow: add setup_temporary_shallow()
shallow: only add shallow graft points to new shallow file
move setup_alternate_shallow and write_shallow_commits to shallow.c
Junio C Hamano [Wed, 23 Oct 2013 20:21:50 +0000 (13:21 -0700)]
Merge branch 'bc/gnome-keyring'
Cleanups and tweaks for credential handling to work with ancient versions
of the gnome-keyring library that are still in use.
* bc/gnome-keyring:
contrib/git-credential-gnome-keyring.c: support really ancient gnome-keyring
contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring
contrib/git-credential-gnome-keyring.c: report failure to store password
contrib/git-credential-gnome-keyring.c: use glib messaging functions
contrib/git-credential-gnome-keyring.c: use glib memory allocation functions
contrib/git-credential-gnome-keyring.c: use secure memory for reading passwords
contrib/git-credential-gnome-keyring.c: use secure memory functions for passwds
contrib/git-credential-gnome-keyring.c: use gnome helpers in keyring_object()
contrib/git-credential-gnome-keyring.c: set Gnome application name
contrib/git-credential-gnome-keyring.c: ensure buffer is non-empty before accessing
contrib/git-credential-gnome-keyring.c: strlen() returns size_t, not ssize_t
contrib/git-credential-gnome-keyring.c: exit non-zero when called incorrectly
contrib/git-credential-gnome-keyring.c: add static where applicable
contrib/git-credential-gnome-keyring.c: *style* use "if ()" not "if()" etc.
contrib/git-credential-gnome-keyring.c: remove unused die() function
contrib/git-credential-gnome-keyring.c: remove unnecessary pre-declarations
Junio C Hamano [Wed, 23 Oct 2013 20:21:48 +0000 (13:21 -0700)]
Merge branch 'po/dot-url'
Explain how '.' can be used to refer to the "current repository"
in the documentation.
* po/dot-url:
doc/cli: make "dot repository" an independent bullet point
config doc: update dot-repository notes
doc: command line interface (cli) dot-repository dwimmery
Junio C Hamano [Wed, 23 Oct 2013 20:21:45 +0000 (13:21 -0700)]
Merge branch 'jc/prompt-upstream'
An enhancement to the GIT_PS1_SHOWUPSTREAM facility.
* jc/prompt-upstream:
git-prompt.sh: optionally show upstream branch name
Junio C Hamano [Wed, 23 Oct 2013 20:21:35 +0000 (13:21 -0700)]
Merge branch 'hu/cherry-pick-previous-branch'
"git cherry-pick" without further options would segfault.
Could use a follow-up to handle '-' after argv[1] better.
* hu/cherry-pick-previous-branch:
cherry-pick: handle "-" after parsing options
Junio C Hamano [Wed, 23 Oct 2013 20:21:30 +0000 (13:21 -0700)]
Merge branch 'mg/more-textconv'
Make "git grep" and "git show" pay attention to --textconv when
dealing with blob objects.
* mg/more-textconv:
grep: honor --textconv for the case rev:path
grep: allow to use textconv filters
t7008: demonstrate behavior of grep with textconv
cat-file: do not die on --textconv without textconv filters
show: honor --textconv for blobs
diff_opt: track whether flags have been set explicitly
t4030: demonstrate behavior of show with textconv
Junio C Hamano [Wed, 23 Oct 2013 20:21:26 +0000 (13:21 -0700)]
Merge branch 'jc/pack-objects'
* jc/pack-objects:
pack-objects: shrink struct object_entry
Junio C Hamano [Fri, 18 Oct 2013 20:53:05 +0000 (13:53 -0700)]
Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 18 Oct 2013 20:53:48 +0000 (13:53 -0700)]
Merge branch 'maint'
* maint:
git-merge: document the -S option
Junio C Hamano [Fri, 18 Oct 2013 20:50:12 +0000 (13:50 -0700)]
Merge branch 'jc/reflog-doc'
Document rules to use GIT_REFLOG_ACTION variable in the scripted
Porcelain. git-rebase--interactive locally violates them, but it
is a leaf user that does not call out to or dot-source other
scripts, so it does not urgently need to be fixed.
* jc/reflog-doc:
setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
Junio C Hamano [Fri, 18 Oct 2013 20:49:56 +0000 (13:49 -0700)]
Merge branch 'sb/repack-in-c'
Rewrite "git repack" in C.
* sb/repack-in-c:
repack: improve warnings about failure of renaming and removing files
repack: retain the return value of pack-objects
repack: rewrite the shell script in C
Junio C Hamano [Fri, 18 Oct 2013 20:49:51 +0000 (13:49 -0700)]
Merge branch 'jk/clone-progress-to-stderr'
Some progress and diagnostic messages from "git clone" were
incorrectly sent to the standard output stream, not to the standard
error stream.
* jk/clone-progress-to-stderr:
clone: always set transport options
clone: treat "checking connectivity" like other progress
clone: send diagnostic messages to stderr
Junio C Hamano [Fri, 18 Oct 2013 20:49:00 +0000 (13:49 -0700)]
Merge git://github.com/git-l10n/git-po
* git://github.com/git-l10n/git-po:
l10n: fr.po: 2135/2135 messages translated
Nicolas Vigier [Mon, 14 Oct 2013 23:41:05 +0000 (01:41 +0200)]
git-merge: document the -S option
The option to gpg sign a merge commit is available but was not
documented. Use wording from the git-commit(1) manpage.
Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jean-Noel Avila [Wed, 21 Aug 2013 19:49:43 +0000 (21:49 +0200)]
l10n: fr.po: 2135/2135 messages translated
Signed-off-by: Sebastien Helleu <flashcode@flashtux.org>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Junio C Hamano [Thu, 17 Oct 2013 22:57:12 +0000 (15:57 -0700)]
Update draft release notes to 1.8.5
Junio C Hamano [Thu, 17 Oct 2013 22:55:18 +0000 (15:55 -0700)]
Merge branch 'jk/format-patch-from'
"format-patch --from=<whom>" forgot to omit unnecessary in-body
from line, i.e. when <whom> is the same as the real author.
* jk/format-patch-from:
format-patch: print in-body "From" only when needed
Junio C Hamano [Thu, 17 Oct 2013 22:55:15 +0000 (15:55 -0700)]
Merge branch 'es/name-hash-no-trailing-slash-in-dirs'
Clean up the internal of the name-hash mechanism used to work
around case insensitivity on some filesystems to cleanly fix a
long-standing API glitch where the caller of cache_name_exists()
that ask about a directory with a counted string was required to
have '/' at one location past the end of the string.
* es/name-hash-no-trailing-slash-in-dirs:
dir: revert work-around for retired dangerous behavior
name-hash: stop storing trailing '/' on paths in index_state.dir_hash
employ new explicit "exists in index?" API
name-hash: refactor polymorphic index_name_exists()
Junio C Hamano [Thu, 17 Oct 2013 22:55:13 +0000 (15:55 -0700)]
Merge branch 'jk/trailing-slash-in-pathspec'
Code refactoring.
* jk/trailing-slash-in-pathspec:
reset: handle submodule with trailing slash
rm: re-use parse_pathspec's trailing-slash removal
Junio C Hamano [Thu, 17 Oct 2013 22:55:12 +0000 (15:55 -0700)]
Merge branch 'lc/filter-branch-too-many-refs'
"git filter-branch" in a repository with many refs blew limit of
command line length.
* lc/filter-branch-too-many-refs:
Allow git-filter-branch to process large repositories with lots of branches.
Junio C Hamano [Thu, 17 Oct 2013 22:55:08 +0000 (15:55 -0700)]
Merge branch 'jc/checkout-detach-doc'
"git checkout [--detach] <commit>" was listed poorly in the
synopsis section of its documentation.
* jc/checkout-detach-doc:
checkout: update synopsys and documentation on detaching HEAD
Junio C Hamano [Thu, 17 Oct 2013 22:54:28 +0000 (15:54 -0700)]
Sync with maint
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 17 Oct 2013 22:50:45 +0000 (15:50 -0700)]
Start preparing for 1.8.4.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 17 Oct 2013 22:46:01 +0000 (15:46 -0700)]
Merge branch 'jk/upload-pack-keepalive' into maint
* jk/upload-pack-keepalive:
upload-pack: bump keepalive default to 5 seconds
upload-pack: send keepalive packets during pack computation
Junio C Hamano [Thu, 17 Oct 2013 22:46:00 +0000 (15:46 -0700)]
Merge branch 'bc/http-backend-allow-405' into maint
* bc/http-backend-allow-405:
http-backend: provide Allow header for 405
Junio C Hamano [Thu, 17 Oct 2013 22:45:57 +0000 (15:45 -0700)]
Merge branch 'jc/cvsserver-perm-bit-fix' into maint
* jc/cvsserver-perm-bit-fix:
cvsserver: pick up the right mode bits
Junio C Hamano [Thu, 17 Oct 2013 22:45:56 +0000 (15:45 -0700)]
Merge branch 'js/add-i-mingw' into maint
* js/add-i-mingw:
add--interactive: fix external command invocation on Windows
Junio C Hamano [Thu, 17 Oct 2013 22:45:55 +0000 (15:45 -0700)]
Merge branch 'nd/git-dir-pointing-at-gitfile' into maint
* nd/git-dir-pointing-at-gitfile:
Make setup_git_env() resolve .git file when $GIT_DIR is not specified
Junio C Hamano [Thu, 17 Oct 2013 22:45:54 +0000 (15:45 -0700)]
Merge branch 'jk/has-sha1-file-retry-packed' into maint
* jk/has-sha1-file-retry-packed:
has_sha1_file: re-check pack directory before giving up
Junio C Hamano [Thu, 17 Oct 2013 22:45:51 +0000 (15:45 -0700)]
Merge branch 'ap/commit-author-mailmap' into maint
* ap/commit-author-mailmap:
commit: search author pattern against mailmap
Junio C Hamano [Thu, 17 Oct 2013 22:45:50 +0000 (15:45 -0700)]
Merge branch 'es/rebase-i-no-abbrev' into maint
* es/rebase-i-no-abbrev:
rebase -i: fix short SHA-1 collision
t3404: rebase -i: demonstrate short SHA-1 collision
t3404: make tests more self-contained
Conflicts:
t/t3404-rebase-interactive.sh
Junio C Hamano [Thu, 17 Oct 2013 22:45:45 +0000 (15:45 -0700)]
Merge branch 'rt/rebase-p-no-merge-summary' into maint
* rt/rebase-p-no-merge-summary:
rebase --preserve-merges: ignore "merge.log" config
Junio C Hamano [Thu, 17 Oct 2013 22:45:24 +0000 (15:45 -0700)]
Merge branch 'es/rebase-i-respect-core-commentchar' into maint
* es/rebase-i-respect-core-commentchar:
rebase -i: fix cases ignoring core.commentchar
SZEDER Gábor [Wed, 16 Oct 2013 12:27:16 +0000 (14:27 +0200)]
t4254: modernize tests
- Don't start tests with 'test $? = 0' to catch preparation done
outside the test_expect_success block.
- Move writing the bogus patch and the expected output into the
appropriate test_expect_success blocks.
- Use the test_must_fail helper instead of manually checking for
non-zero exit code.
- Use the debug-friendly test_path_is_file helper instead of 'test -f'.
- No space after '>'.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Oct 2013 19:27:45 +0000 (12:27 -0700)]
Update draft release notes to 1.8.5
List notable topics that graduated during Jonathan's interim
maintainership.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Oct 2013 17:45:58 +0000 (10:45 -0700)]
Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn:
git-svn: Warn about changing default for --prefix in Git v2.0
Documentation/git-svn: Promote the use of --prefix in docs + examples
git-svn.txt: elaborate on rev_map files
git-svn.txt: replace .git with $GIT_DIR
git-svn.txt: reword description of gc command
git-svn.txt: fix AsciiDoc formatting error
git-svn: fix signed commit parsing
Brandon Casey [Mon, 23 Sep 2013 18:49:17 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: support really ancient gnome-keyring
The gnome-keyring lib (0.4) distributed with RHEL 4.X is really ancient
and does not provide most of the synchronous functions that even ancient
releases do. Thankfully, we're only using one function that is missing.
Let's emulate gnome_keyring_item_delete_sync() by calling the asynchronous
function and then triggering the event loop processing until our
callback is called.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:16 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring
The gnome-keyring lib distributed with RHEL 5.X is ancient and does
not provide a few of the functions/defines that more recent versions
do, but mostly the API is the same. Let's provide the missing bits
via macro definitions and function implementation.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:15 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: report failure to store password
Produce an error message when we fail to store a password to the keyring.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:14 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: use glib messaging functions
Rather than roll our own, let's use the messaging functions provided
by glib.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:13 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: use glib memory allocation functions
Rather than roll our own, let's use the memory allocation/free routines
provided by glib.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:12 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: use secure memory for reading passwords
gnome-keyring provides functions to allocate non-pageable memory (if
possible). Let's use them to allocate memory that may be used to hold
secure data read from the keyring.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:11 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: use secure memory functions for passwds
gnome-keyring provides functions for allocating non-pageable memory (if
possible) intended to be used for storing passwords. Let's use them.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:10 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: use gnome helpers in keyring_object()
Rather than carefully allocating memory for sprintf() to write into,
let's make use of the glib helper function g_strdup_printf(), which
makes things a lot easier and less error-prone.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:09 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: set Gnome application name
Since this is a Gnome application, let's set the application name to
something reasonable. This will be displayed in Gnome dialog boxes
e.g. the one that prompts for the user's keyring password.
We add an include statement for glib.h and add the glib-2.0 cflags and
libs to the compilation arguments, but both of these are really noops
since glib is already a dependency of gnome-keyring.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:08 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: ensure buffer is non-empty before accessing
Ensure buffer length is non-zero before attempting to access the last
element.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:07 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: strlen() returns size_t, not ssize_t
Also, initialization is not necessary since it is assigned before it is
used.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:06 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: exit non-zero when called incorrectly
If the correct arguments were not specified, this program should exit
non-zero. Let's do so.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:05 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: add static where applicable
Mark global variable and functions as static.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 23 Sep 2013 18:49:04 +0000 (11:49 -0700)]
contrib/git-credential-gnome-keyring.c: *style* use "if ()" not "if()" etc.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 15 Oct 2013 23:15:00 +0000 (16:15 -0700)]
Merge branch 'maint'
* maint:
git-prune-packed.txt: fix reference to GIT_OBJECT_DIRECTORY
clone --branch: refuse to clone if upstream repo is empty
Steffen Prohaska [Mon, 23 Sep 2013 19:19:19 +0000 (21:19 +0200)]
git-prune-packed.txt: fix reference to GIT_OBJECT_DIRECTORY
git-prune-packed operates on GIT_OBJECT_DIRECTORY, not
GIT_OBJECT_DIR.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Steffen Prohaska [Mon, 23 Sep 2013 18:54:35 +0000 (20:54 +0200)]
git.txt: fix asciidoc syntax of --*-pathspecs
Labeled lists require a double colon.
[jc] I eyeballed the output from
git grep '[^:]:$' Documentation/\*.txt
and the patch fixes all breakages of this kind.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Philip Oakley [Tue, 15 Oct 2013 21:57:42 +0000 (14:57 -0700)]
doc/cli: make "dot repository" an independent bullet point
The way to spell the current repository with a '.' dot is
independent from how the pathspec allows globs expanded by Git.
Make them two separate bullet items in the enumeration.
Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Saasen [Fri, 4 Oct 2013 14:34:53 +0000 (07:34 -0700)]
mergetool--lib: Fix typo in the merge/difftool help
The help text for the `tool` flag should mention:
--tool=<tool>
instead of:
--tool-<tool>
Signed-off-by: Stefan Saasen <ssaasen@atlassian.com>
Reviewed-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Sun, 6 Oct 2013 20:52:21 +0000 (21:52 +0100)]
sparse: suppress some "using sizeof on a function" warnings
Sparse issues an "using sizeof on a function" warning for each
call to curl_easy_setopt() which sets an option that takes a
function pointer parameter. (currently 12 such warnings over 4
files.)
The warnings relate to the use of the "typecheck-gcc.h" header
file which adds a layer of type-checking macros to the curl
function invocations (for gcc >= 4.3 and !__cplusplus). As part
of the type-checking layer, 'sizeof' is applied to the function
parameter of curl_easy_setopt(). Note that, in the context of
sizeof, the function to function pointer conversion is not
performed and that sizeof(f) != sizeof(&f).
A simple solution, therefore, would be to replace the function
name in each such call to curl_easy_setopt() with an explicit
function pointer expression (i.e. replace f with &f).
However, the "typecheck-gcc.h" header file is only conditionally
included, in addition to the gcc and C++ checks mentioned above,
depending on the CURL_DISABLE_TYPECHECK preprocessor variable.
In order to suppress the warnings, we use target-specific variable
assignments to add -DCURL_DISABLE_TYPECHECK to SPARSE_FLAGS for
each file affected (http-push.c, http.c, http-walker.c and
remote-curl.c).
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Sun, 6 Oct 2013 20:51:31 +0000 (21:51 +0100)]
format-patch doc: Thunderbird wraps lines unless mailnews.wraplength=0
The Thunderbird section of the 'MUA-specific hints' contains three
different approaches to setting up the mail client to leave patch
emails unmolested. The second approach (configuration) has a step
missing when configuring the composition window not to wrap. In
particular, the "mailnews.wraplength" configuration variable needs
to be set to zero. Update the documentation to add the missing
setting.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jonathan Nieder [Mon, 14 Oct 2013 23:19:31 +0000 (16:19 -0700)]
Merge branch 'rj/highlight-test-hang'
* rj/highlight-test-hang:
gitweb test: fix highlight test hang on Linux Mint
Ramsay Jones [Sun, 6 Oct 2013 20:50:46 +0000 (21:50 +0100)]
gitweb test: fix highlight test hang on Linux Mint
Linux Mint has an implementation of the highlight command (unrelated
to the one from http://www.andre-simon.de) that works as a simple
filter. The script uses 'sed' to add terminal colour escape codes
around text matching a regular expression. When t9500-*.sh attempts
to run "highlight --version", the script simply hangs waiting for
input. (See https://bugs.launchpad.net/linuxmint/+bug/815005).
The tool required by gitweb can be installed from the 'highlight'
package. Unfortunately, given the default $PATH, this leads to the
tool having lower precedence than the script.
In order to avoid hanging the test, add '</dev/null' to the command
line of the highlight invocation. Also, since the 'highlight' tool
requred by gitweb produces '--version' output (and the script does
not), saving the command output allows a simple check for the wrong
'highlight'.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Sun, 6 Oct 2013 20:50:00 +0000 (21:50 +0100)]
wrapper.c: only define gitmkstemps if needed
When the NO_MKSTEMPS build variable is not set, the gitmkstemps
function is dead code. Use a preprocessor conditional to only include
the definition when needed.
Noticed by sparse. ("'gitmkstemps' was not declared. Should it be
static?")
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Sun, 6 Oct 2013 20:49:18 +0000 (21:49 +0100)]
refs.c: spell NULL pointer as NULL
A call to update_ref_lock() passes '0' to the 'int *type_p' parameter.
Noticed by sparse. ("Using plain integer as NULL pointer")
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Sun, 6 Oct 2013 20:48:29 +0000 (21:48 +0100)]
config.c: mark file-local function static
Commit
7192777 refactors git_parse_ulong, which is public, into a more
generic function. But since we kept the git_parse_ulong wrapper, only
that part needs to be public; nobody outside the file calls the
lower-level git_parse_unsigned.
Noticed with sparse. ("'git_parse_unsigned' was not declared. Should
it be static?")
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Explained-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
brian m. carlson [Sat, 12 Oct 2013 00:45:46 +0000 (00:45 +0000)]
CodingGuidelines: style for multi-line comments
The style for multi-line comments is often mentioned and should be documented
for clarity.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jonathan Nieder [Mon, 14 Oct 2013 19:45:50 +0000 (12:45 -0700)]
Merge branch 'nv/doc-config-signingkey'
* nv/doc-config-signingkey:
config doc: user.signingkey is also used for signed commits
Nicolas Vigier [Mon, 14 Oct 2013 17:04:36 +0000 (19:04 +0200)]
config doc: user.signingkey is also used for signed commits
The description of the user.signingkey option only mentioned its use
when creating a signed tag. Make it clear that is is also used when
creating signed commits.
Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ralf Thielow [Fri, 11 Oct 2013 16:49:02 +0000 (18:49 +0200)]
clone --branch: refuse to clone if upstream repo is empty
Since
920b691 (clone: refuse to clone if --branch
points to bogus ref) we refuse to clone with option
"-b" if the specified branch does not exist in the
(non-empty) upstream. If the upstream repository is empty,
the branch doesn't exist, either. So refuse the clone too.
Reported-by: Robert Mitwicki <robert.mitwicki@opensoftware.pl>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jonathan Nieder [Mon, 14 Oct 2013 18:09:30 +0000 (11:09 -0700)]
Merge branch 'sb/checkout-test-complex-path'
* sb/checkout-test-complex-path:
checkout test: enable test with complex relative path
Jonathan Nieder [Mon, 14 Oct 2013 18:08:47 +0000 (11:08 -0700)]
Merge branch 'rt/cherry-pick-status'
* rt/cherry-pick-status:
status: show commit sha1 in "You are currently cherry-picking" message
status test: add missing && to <<EOF blocks
Jonathan Nieder [Mon, 14 Oct 2013 18:07:50 +0000 (11:07 -0700)]
Merge branch 'rj/doc-formatting-fix'
* rj/doc-formatting-fix:
howto/revert-a-faulty-merge: fix unescaped '^'s
howto/setup-git-server-over-http: fix unescaped '^'s
Jonathan Nieder [Mon, 14 Oct 2013 18:07:29 +0000 (11:07 -0700)]
Merge branch 'po/remote-set-head-usage'
* po/remote-set-head-usage:
remote set-head -h: add long options to synopsis
remote doc: document long forms of set-head options
Jonathan Nieder [Mon, 14 Oct 2013 18:06:57 +0000 (11:06 -0700)]
Merge branch 'nd/clone-local-with-colon'
* nd/clone-local-with-colon:
clone: tighten "local paths with colons" check a bit
Jonathan Nieder [Mon, 14 Oct 2013 18:03:48 +0000 (11:03 -0700)]
Merge branch 'jx/clean-interactive'
* jx/clean-interactive:
path-utils test: rename mingw_path function to print_path
Jonathan Nieder [Mon, 14 Oct 2013 17:59:51 +0000 (10:59 -0700)]
Merge branch 'jk/diff-algo'
* jk/diff-algo:
merge-recursive: fix parsing of "diff-algorithm" option
Julien Carsique [Thu, 10 Oct 2013 14:40:39 +0000 (16:40 +0200)]
git-prompt.sh: optionally show upstream branch name
When working with multiple remotes, it is common to switch the upstream
from a remote to another. Doing so, the prompt may not be the expected
one. Providing an option to display tracking information sounds useful.
Add a "name" option to GIT_PS1_SHOWUPSTREAM which will show the upstream
abbrev name. This option is ignored if "verbose" is false.
Signed-off-by: Julien Carsique <julien.carsique@gmail.com>
Improved-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Sebastian Schuberth [Thu, 10 Oct 2013 20:49:43 +0000 (22:49 +0200)]
path-utils test: rename mingw_path function to print_path
mingw_path was introduced in
abd4284 to output a mangled path as it is
passed as an argument to main(). But the name is misleading because
mangling does not come from MinGW, but from MSYS [1]. As
abd4284 does not
introduce any MSYS or MinGW specific code but just prints out argv[2] as
it is passed to main(), give the function the more generic and less
confusing name "print_path".
[1] http://www.mingw.org/wiki/Posix_path_conversion
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Fri, 11 Oct 2013 18:24:14 +0000 (19:24 +0100)]
howto/revert-a-faulty-merge: fix unescaped '^'s
Several uses of the '^' operator are being interpreted by asciidoc
as requests to show the following text as a superscript. In order
to fix this problem, use backticks (`) to quote the text of the
affected git command invocations.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Ramsay Jones [Fri, 11 Oct 2013 19:38:36 +0000 (20:38 +0100)]
howto/setup-git-server-over-http: fix unescaped '^'s
The text contains two 'grep' invocations which include the 'start
of line' regular expression character '^'. Asciidoc mis-interprets
this use of '^' as a superscript request. In order to fix this
formatting problem, use backticks (`) to quote the text of the
affected 'grep' command invocations.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Stefan Saasen [Sat, 12 Oct 2013 22:29:35 +0000 (09:29 +1100)]
mergetools/diffmerge: support DiffMerge as a git mergetool
DiffMerge is a non-free (but gratis) tool that supports OS X, Windows and Linux.
See http://www.sourcegear.com/diffmerge/
DiffMerge includes a script `/usr/bin/diffmerge` that can be used to launch the
graphical compare tool.
This change adds mergetool support for DiffMerge and adds 'diffmerge' as an
option to the mergetool help.
Signed-off-by: Stefan Saasen <ssaasen@atlassian.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Thomas Rast [Sun, 13 Oct 2013 14:07:49 +0000 (16:07 +0200)]
.mailmap: switch to Thomas Rast's personal address
Normalize to my personal address, as my ETH addresses will expire
soon. Also add my new corp account to be somewhat futureproof.
Note that despite the private address being first, Google owns the
copyright as long as I am employed there.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Johan Herland [Fri, 11 Oct 2013 12:57:06 +0000 (14:57 +0200)]
git-svn: Warn about changing default for --prefix in Git v2.0
In Git v2.0, we will change the default --prefix for init/clone from
none/empty to "origin/" (which causes SVN-tracking branches to be
placed at refs/remotes/origin/* instead of refs/remotes/*).
This patch warns users about the upcoming change, both in the git-svn
manual page, and on stderr when running init/clone in the "multi-mode"
without providing a --prefix.
Cc: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Johan Herland [Fri, 11 Oct 2013 12:57:05 +0000 (14:57 +0200)]
Documentation/git-svn: Promote the use of --prefix in docs + examples
Currently, the git-svn defaults to using an empty prefix, which ends
up placing the SVN-tracking refs directly in refs/remotes/*. This
placement runs counter to Git's convention of placing remote-tracking
branches in refs/remotes/$remote/*.
Furthermore, combining git-svn with "regular" Git remotes run the risk
of clobbering refs under refs/remotes (e.g. if you have a git remote
called "tags" with a "v1" branch, it will overlap with the git-svn's
tracking branch for the "v1" tag from Subversion.
Even though the git-svn refs stored in refs/remotes/* are not "proper"
remote-tracking branches (since they are not covered by a proper git
remote's refspec), they clearly represent a similar concept, and would
benefit from following the same convention.
For example, if git-svn tracks Subversion branch "foo" at
refs/remotes/foo, and you create a local branch refs/heads/foo to add
some commits to be pushed back to Subversion (using "git svn dcommit),
then it is clearly unhelpful of Git to throw
warning: refname 'foo' is ambiguous.
every time you checkout, rebase, or otherwise interact with the branch.
At this time, the user is better off using the --prefix=foo/ (the
trailing slash is important) to git svn init/clone, to cause the
SVN-tracking refs to be placed at refs/remotes/foo/* instead of
refs/remotes/*. This patch updates the documentation to encourage
use of --prefix.
This is also in preparation for changing the default value of --prefix
at some point in the future.
Cc: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Ralf Thielow [Fri, 11 Oct 2013 15:58:37 +0000 (17:58 +0200)]
status: show commit sha1 in "You are currently cherry-picking" message
Especially helpful when cherry-picking multiple commits.
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jonathan Nieder [Fri, 11 Oct 2013 17:35:46 +0000 (10:35 -0700)]
status test: add missing && to <<EOF blocks
When a test forgets to include && after each command, it is possible
for an early command to succeed but the test to fail, which can hide
bugs.
Checked using the following patch to the test harness:
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -425,7 +425,17 @@ test_eval_ () {
eval </dev/null >&3 2>&4 "$*"
}
+check_command_chaining_ () {
+ eval >&3 2>&4 "(exit 189) && $*"
+ eval_chain_ret=$?
+ if test "$eval_chain_ret" != 189
+ then
+ error 'bug in test script: missing "&&" in test commands'
+ fi
+}
+
test_run_ () {
+ check_command_chaining_ "$1"
test_cleanup=:
expecting_failure=$2
setup_malloc_check
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jeff King [Thu, 10 Oct 2013 16:41:17 +0000 (12:41 -0400)]
cherry-pick: handle "-" after parsing options
Currently, we only try converting argv[1] from "-" into "@{-1}". This
means we do not notice "-" when used together with an option. Worse,
when "git cherry-pick" is run with no options, we segfault. Fix this
by doing the substitution after we have checked that there is
something in argv to cherry-pick and know any remaining options are
meant for the revision-listing machinery.
This still does not handle "-" after the first non-cherry-pick option.
For example,
git cherry-pick foo~2 - bar~5
and
git cherry-pick --no-merges -
will still dump usage.
Reported-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Keshav Kini [Sun, 29 Sep 2013 23:46:00 +0000 (18:46 -0500)]
git-svn.txt: elaborate on rev_map files
The man page for `git svn` describes a situation in which "'git svn'
will not be able to rebuild" your $GIT_DIR/svn/**/.rev_map* files, but
no mention is made of in what circumstances `git svn` *will* be able to
do so, how to get `git svn` to do so, or even what these files are.
This patch adds a FILES section to the man page with a description of
what $GIT_DIR/svn/**/.rev_map* files are and how they are (re)built, and
links to this description from various other parts of the man page.
Signed-off-by: Keshav Kini <keshav.kini@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Keshav Kini [Sun, 29 Sep 2013 23:45:59 +0000 (18:45 -0500)]
git-svn.txt: replace .git with $GIT_DIR
As $GIT_DIR may not equal '.git', it's usually more generally correct to
refer to files in $GIT_DIR rather than in .git .
This will also allow me to link some of the occurrences of '.git' in
git-svn.txt to a new reference target inside this file in an upcoming
commit, because in AsciiDoc definitions apparently can't start with
a '.' character.
Signed-off-by: Keshav Kini <keshav.kini@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Keshav Kini [Sun, 29 Sep 2013 23:45:58 +0000 (18:45 -0500)]
git-svn.txt: reword description of gc command
It's redundant to say that $GIT_DIR/svn/<refname>/unhandled.log or
$GIT_DIR/svn/<refname>/index is in .git/svn when $GIT_DIR is '.git', and
is wrong when $GIT_DIR is not '.git'
Also, a '/' was missing from the pathname $GIT_DIR/svn/<refname>/index .
Signed-off-by: Keshav Kini <keshav.kini@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Keshav Kini [Sun, 29 Sep 2013 23:45:57 +0000 (18:45 -0500)]
git-svn.txt: fix AsciiDoc formatting error
As asterisks are used to indicate bold text in AsciiDoc, shell glob
expressions must be escaped appropriately.
Signed-off-by: Keshav Kini <keshav.kini@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Nicolas Vigier [Mon, 30 Sep 2013 14:46:14 +0000 (16:46 +0200)]
git-svn: fix signed commit parsing
When parsing a commit object, git-svn wrongly think that a line
containing spaces means the end of headers and the start of the commit
message. In case of signed commit, the gpgsig entry contains a line with
one space, so "git svn dcommit" will include part of the signature in
the commit message.
An example of such problem :
http://svnweb.mageia.org/treasurer?view=revision&revision=86
This commit changes the regex to only match an empty line as separator
between the headers and the commit message.
Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Stefan Beller [Wed, 9 Oct 2013 14:35:11 +0000 (16:35 +0200)]
checkout test: enable test with complex relative path
This test was added, commented out, in
fed1b5ca (git-checkout: Test
for relative path use, 2007-11-09). Later git's path handling was
improved (
d089ebaa, setup: sanitize absolute and funny paths in
get_pathspec(), 2008-01-28) but we forgot to enable the now-working
test.
This test expects to run from a subdirectory, so add a 'cd'. While
we're here, examine the content of the checked-out file instead of
just checking that it exists. The other checkout tests already do the
same.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Jonathan Nieder [Tue, 8 Oct 2013 20:56:50 +0000 (13:56 -0700)]
Merge branch 'tz/credential-netrc'
* tz/credential-netrc:
git-credential-netrc: fix uninitialized warning