Commit Graph

27245 Commits

Author SHA1 Message Date
Heiko Voigt
3387e2df22 work around misdetection of stdin attached to a tty
Git on Windows was made aware of the fact that sometimes a file may be
used by another process and so an operation may fail but the user might
be able to fix it and is asking for confirmation whether it should
retry.

This is implemented in a way that git only asks in case stdin and stderr
are attached to a tty. Unfortunately this seems to be misdetected
sometimes causing the testsuite to hang when git is waiting for a user
answer.

This patch works around the situation.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
2011-10-31 11:47:54 -05:00
Johannes Schindelin
afd7ac6f93 git am: ignore dirty submodules
This fixes a rebase in the presence of dirty submodules. This is
orthogonal to the application of patches changing submodules.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:54 -05:00
Johannes Schindelin
a6f5cf04e8 t7602: cope with CR/LF
The output of git-merge-octopus has CR/LF line endings, so let's just
strip the CR out.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:54 -05:00
Johannes Schindelin
4145de0853 Add a Windows-specific fallback to getenv("HOME");
This fixes msysGit issue 482 properly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:54 -05:00
bert Dvornik
1853752780 send-email: handle Windows paths for display just like we do for processing
In git-send-email.perl, here are two checks to determine if
$smtp_server is an absolute path (so it'll be treated as a mailer) or
not (so it'll be treated as a hostname).  The one that handles actual
mail processing has been taught to recognize Windows pathnames by
commit 33b2e81f.

The other check is just to tell the user what happened, so it's far
less important, but the current state is that we will still claim to
the user that c:/foo/bar is a server. =)  This makes the second check
consistent with the first.

Signed-off-by: bert Dvornik <dvornik+git@gmail.com>
2011-10-31 11:47:53 -05:00
Erik Faye-Lund
42ff399a5f send-email: accept absolute path even on Windows
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Johannes Schindelin
3cdf0a1e40 Add a few more values for receive.denyCurrentBranch
For a long time, this developer thought that Git's insistence that
pushing into the current branch is evil was completely merited.

Just for fun, the original patch tried to show people that Git is right
there, and that it causes more trouble than it does good when Git allows
you to try to update the working tree for fast-forwards, or to detach the
HEAD, depending on some config settings.

Surprisingly, the opposite was shown.

So here is the support for two new options you can give the config
variable receive.denyCurrentBranch:

'updateInstead':
	Try to merge the working tree with the new tip of the branch
	(which can lead to really horrible merge conflicts).

'detachInstead':
	Detach the HEAD, thereby avoiding a disagreement between the
	HEAD and the index (as well as the working tree), possibly
	leaving the local user wondering how on earth her HEAD became
	so detached.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Johannes Schindelin
094455626e Work around funny CR issue
This is really a problem with shell scripts being called on msysGit,
but there are more important bugs to fix for the moment.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Pat Thoyts
3956fb146a mingw: add tests for the hidden attribute on the git directory
With msysGit the .git directory is supposed to be hidden, unless it is
a bare git repository. Test this.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
2011-10-31 11:47:53 -05:00
Johannes Schindelin
841f6164d5 Work around the command line limit on Windows
On Windows, there are dramatic problems when a command line grows
beyond PATH_MAX, which is restricted to 8191 characters on XP and
later (according to http://support.microsoft.com/kb/830473).

Work around this by just cutting off the command line at that length
(actually, at a space boundary) in the hope that only negative
refs are chucked: gitk will then do unnecessary work, but that is
still better than flashing the gitk window and exiting with exit
status 5 (which no Windows user is able to make sense of).

The first fix caused Tcl to fail to compile the regexp, see msysGit issue
427. Here is another fix without using regexp, and using a more relaxed
command line length limit to fix the original issue 387.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Heiko Voigt
a88b8493c4 git-gui: provide question helper for retry fallback on Windows
Make use of the new environment variable GIT_ASK_YESNO to support the
recently implemented fallback in case unlink, rename or rmdir fail for
files in use on Windows. The added dialog will present a yes/no question
to the the user which will currently be used by the windows compat layer
to let the user retry a failed file operation.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
2011-10-31 11:47:53 -05:00
Heiko Voigt
10a51ab182 Revert "git-gui: set GIT_DIR and GIT_WORK_TREE after setup"
This reverts commit a9fa11fe5b.
2011-10-31 11:47:53 -05:00
Johannes Sixt
8b8b49c82a criss cross rename failure workaround
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Johannes Schindelin
82c0d3c012 When initializing .git/, record the current setting of core.hideDotFiles
This is on Windows only, of course.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Erik Faye-Lund
b2badafcc1 core.hidedotfiles: hide '.git' dir by default
At least for cross-platform projects, it makes sense to hide the
files starting with a dot, as this is the behavior on Unix/MacOSX.

However, at least Eclipse has problems interpreting the hidden flag
correctly, so the default is to hide only the .git/ directory.

The config setting core.hideDotFiles therefore supports not only
'true' and 'false', but also 'dotGitOnly'.

[jes: clarified the commit message, made git init respect the setting
by marking the .git/ directory only after reading the config, and added
documentation, and rebased on top of current junio/next]

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2011-10-31 11:47:53 -05:00
Sebastian Schuberth
47cf74ce9c MinGW: Add missing file mode bit defines
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
2011-10-31 11:47:53 -05:00
Junio C Hamano
bcc18e3fb8 Merge branch 'master' into next
* master:
  Git 1.7.8-rc0
2011-10-30 19:17:00 -07:00
Junio C Hamano
be3fa9125e Git 1.7.8-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
v1.7.8-rc0
2011-10-30 19:14:24 -07:00
Junio C Hamano
324bc2a7ee Merge branch 'jk/git-tricks'
* jk/git-tricks:
  completion: match ctags symbol names in grep patterns
  contrib: add git-jump script
  contrib: add diff highlight script
2011-10-30 19:13:13 -07:00
Junio C Hamano
9588bc1d04 Merge branch 'ss/blame-textconv-fake-working-tree' into next
* ss/blame-textconv-fake-working-tree:
  (squash) test for previous
  blame.c: Properly initialize strbuf after calling, textconv_object()

Conflicts:
	t/t8006-blame-textconv.sh
2011-10-30 19:05:24 -07:00
Junio C Hamano
5267fa307d Merge branch 'ef/mingw-upload-archive' into next
* ef/mingw-upload-archive:
  upload-archive: use start_command instead of fork
  compat/win32/poll.c: upgrade from upstream
  mingw: move poll out of sys-folder
2011-10-30 18:47:04 -07:00
Erik Faye-Lund
c09cd77ea2 upload-archive: use start_command instead of fork
The POSIX-function fork is not supported on Windows. Use our
start_command API instead.

As this is the last call-site that depends on the fork-stub in
compat/mingw.h, remove that as well.

Add an undocumented flag to git-archive that tells it that the
action originated from a remote, so features can be disabled.
Thanks to Jeff King for work on this part.

Remove the NOT_MINGW-prereq for t5000, as git-archive --remote
now works.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-30 18:45:21 -07:00
Erik Faye-Lund
f0bd664977 compat/win32/poll.c: upgrade from upstream
poll.c is updated from revision adc3a5b in
git://git.savannah.gnu.org/gnulib.git

The changes are applied with --whitespace=fix to reduce noise.

poll.h is not upgraded, because the most recent version now
contains template-stuff that breaks compilation for us.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-30 18:45:16 -07:00
Erik Faye-Lund
0f77dea9a8 mingw: move poll out of sys-folder
Both XSI and upstream Gnulib versions expects to find poll.h at
the root of some include path, not inside the sys-folder.

This helps us when upgrading Gnulib.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-30 18:44:28 -07:00
Junio C Hamano
2527a49a5c Merge branch 'nd/misc-cleanups' into next
* nd/misc-cleanups:
  unpack_object_header_buffer(): clear the size field upon error
  tree_entry_interesting: make use of local pointer "item"
  tree_entry_interesting(): give meaningful names to return values
  read_directory_recursive: reduce one indentation level
  get_tree_entry(): do not call find_tree_entry() on an empty tree
  tree-walk.c: do not leak internal structure in tree_entry_len()
2011-10-28 09:53:18 -07:00
Junio C Hamano
55e7c0aaa1 (squash) test for previous
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-28 09:36:55 -07:00
Sebastian Schuberth
2564aa48ce blame.c: Properly initialize strbuf after calling, textconv_object()
For a plain string where only the length is known, strbuf.alloc needs to
be initialized to the length. Otherwise strbuf.alloc is 0 and a later
call to strbuf_setlen() will fail.

This bug surfaced when calling git blame under Windows on a *.doc file.
The *.doc file is converted to plain text by antiword via the textconv
mechanism. However, the plain text returned by antiword contains DOS line
endings instead of Unix line endings which triggered the strbuf_setlen()
which previous to this patch failed.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-28 08:41:56 -07:00
Junio C Hamano
fa5289878a Merge branch 'dm/pack-objects-update' into next
* dm/pack-objects-update:
  pack-objects: don't traverse objects unnecessarily
  pack-objects: rewrite add_descendants_to_write_order() iteratively
  pack-objects: use unsigned int for counter and offset values
  pack-objects: mark add_to_write_order() as inline
2011-10-27 15:40:34 -07:00
Junio C Hamano
2e4acd6fbe Merge branch 'rs/allocate-cache-entry-individually' into next
* rs/allocate-cache-entry-individually:
  cache.h: put single NUL at end of struct cache_entry
  read-cache.c: allocate index entries individually

Conflicts:
	read-cache.c
2011-10-27 15:40:34 -07:00
Junio C Hamano
4b61df7412 Merge branch 'nd/pretty-commit-log-message' into next
* nd/pretty-commit-log-message:
  pretty.c: use original commit message if reencoding fails
  pretty.c: free get_header() return value
2011-10-27 15:40:34 -07:00
Junio C Hamano
ff73a2ef01 Merge branch 'master' into next
* master:
  Update draft release notes to 1.7.8
  clone: Quote user supplied path in a single quote pair
2011-10-27 12:07:02 -07:00
Junio C Hamano
e8e1c29021 Update draft release notes to 1.7.8
Getting very close to -rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 12:06:44 -07:00
Junio C Hamano
4801546528 Merge branch 'sn/complete-bash-wo-process-subst'
* sn/complete-bash-wo-process-subst:
  completion: fix issue with process substitution not working on Git for Windows
2011-10-27 12:04:28 -07:00
Junio C Hamano
f124fe3061 Merge branch 'rj/gitweb-clean-js'
* rj/gitweb-clean-js:
  gitweb/Makefile: Remove static/gitweb.js in the clean target
2011-10-27 12:04:21 -07:00
Junio C Hamano
220c0453c1 Merge branch 'js/grep-mutex'
* js/grep-mutex:
  builtin/grep: simplify lock_and_read_sha1_file()
  builtin/grep: make lock/unlock into static inline functions
  git grep: be careful to use mutexes only when they are initialized
2011-10-27 12:04:02 -07:00
Junio C Hamano
82bc9f515c Merge branch 'maint'
* maint:
  clone: Quote user supplied path in a single quote pair
  read-cache.c: fix index memory allocation
2011-10-27 12:03:37 -07:00
Junio C Hamano
a76a326b2a Merge branch 'rs/maint-estimate-cache-size' into maint
* rs/maint-estimate-cache-size:
  read-cache.c: fix index memory allocation
2011-10-27 12:03:16 -07:00
Richard Hartmann
8debf69638 clone: Quote user supplied path in a single quote pair
Without this patch,

    $ git clone foo .

results in this:

    Cloning into ....
    done.

With it:

    Cloning into '.'...
    done.

Signed-off-by: Richard Hartmann <richih.mailinglist@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 12:02:02 -07:00
Junio C Hamano
ea4f9685cb unpack_object_header_buffer(): clear the size field upon error
The callers do not use the returned size when the function says
it did not use any bytes and sets the type to OBJ_BAD, so this
should not matter in practice, but it is a good code hygiene
anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:42:57 -07:00
Nguyễn Thái Ngọc Duy
9c6bebd142 tree_entry_interesting: make use of local pointer "item"
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:38:24 -07:00
Nguyễn Thái Ngọc Duy
d688cf07b1 tree_entry_interesting(): give meaningful names to return values
It is a basic code hygiene to avoid magic constants that are unnamed.
Besides, this helps extending the value later on for "interesting, but
cannot decide if the entry truely matches yet" (ie. prefix matches)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:38:24 -07:00
Nguyễn Thái Ngọc Duy
02cb67530e read_directory_recursive: reduce one indentation level
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:27:57 -07:00
Junio C Hamano
5fb8c05f2e get_tree_entry(): do not call find_tree_entry() on an empty tree
We know we will find nothing.

This incidentally squelches false warning from gcc about potentially
uninitialized usage of t.entry fields. For an empty tree, it is true that
init_tree_desc() does not call decode_tree_entry() and the tree_desc is
left uninitialized, but find_tree_entry() only calls tree_entry_extract()
that uses the tree_desc while it has more things to read from the tree, so
the uninitialized t.entry fields are never used in such a case anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:24:01 -07:00
Nguyễn Thái Ngọc Duy
0de1633783 tree-walk.c: do not leak internal structure in tree_entry_len()
tree_entry_len() does not simply take two random arguments and return
a tree length. The two pointers must point to a tree item structure,
or struct name_entry. Passing random pointers will return incorrect
value.

Force callers to pass struct name_entry instead of two pointers (with
hope that they don't manually construct struct name_entry themselves)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27 11:08:26 -07:00
Junio C Hamano
6fac2d6419 Merge branch 'js/grep-mutex' into next
* js/grep-mutex:
  builtin/grep: simplify lock_and_read_sha1_file()
  builtin/grep: make lock/unlock into static inline functions
  git grep: be careful to use mutexes only when they are initialized
2011-10-26 16:55:26 -07:00
Junio C Hamano
8662ed6af6 Merge branch 'sn/complete-bash-wo-process-subst' into next
* sn/complete-bash-wo-process-subst:
  completion: fix issue with process substitution not working on Git for Windows
2011-10-26 16:55:26 -07:00
Junio C Hamano
2f11375c30 Merge branch 'rs/maint-estimate-cache-size' into next
* rs/maint-estimate-cache-size:
  read-cache.c: fix index memory allocation
2011-10-26 16:55:26 -07:00
Junio C Hamano
db36a24f2a Merge branch 'rj/gitweb-clean-js' into next
* rj/gitweb-clean-js:
  gitweb/Makefile: Remove static/gitweb.js in the clean target
2011-10-26 16:55:25 -07:00
Junio C Hamano
d65e2b499d Merge branch 'sg/complete-refs' into next
* sg/complete-refs:
  completion: remove broken dead code from __git_heads() and __git_tags()
  completion: fast initial completion for config 'remote.*.fetch' value
  completion: improve ls-remote output filtering in __git_refs_remotes()
  completion: query only refs/heads/ in __git_refs_remotes()
  completion: support full refs from remote repositories
  completion: improve ls-remote output filtering in __git_refs()
  completion: make refs completion consistent for local and remote repos
  completion: optimize refs completion
  completion: document __gitcomp()

Conflicts:
	contrib/completion/git-completion.bash
2011-10-26 16:26:27 -07:00
Junio C Hamano
27b7496971 Merge branch 'rr/revert-cherry-pick' into next
* rr/revert-cherry-pick:
  revert: simplify communicating command-line arguments
  revert: allow mixed pick and revert instructions
  revert: make commit subjects in insn sheet optional
  revert: simplify getting commit subject in format_todo()
  revert: free msg in format_todo()
2011-10-26 16:26:27 -07:00