summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-01-20rev-parse --branches/--tags/--remotes=patternLibravatar Ilari Liusvaara9-20/+139
Since local branch, tags and remote tracking branch namespaces are most often used, add shortcut notations for globbing those in manner similar to --glob option. With this, one can express the "what I have but origin doesn't?" as: 'git log --branches --not --remotes=origin' Original-idea-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20rev-parse --globLibravatar Ilari Liusvaara9-2/+223
Add --glob=<glob-pattern> option to rev-parse and everything that accepts its options. This option matches all refs that match given shell glob pattern (complete with some DWIM logic). Example: 'git log --branches --not --glob=remotes/origin' To show what you have that origin doesn't. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-19Merge branch 'maint'Libravatar Junio C Hamano1-3/+5
* maint: bisect: fix singular/plural grammar nit
2010-01-19Makefile: honor NO_CURL when setting REMOTE_CURL_* variablesLibravatar Johannes Sixt1-10/+6
Previously, these variables were set before there was a chance to set NO_CURL. This made a difference only during 'make install', because by installing $(REMOTE_CURL_ALIASES), the rule tries to access $(REMOTE_CURL_PRIMARY), which was never installed. On Windows, this fails; on Unix, stale symbolic links are created. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-19bisect: fix singular/plural grammar nitLibravatar David Ripton1-3/+5
Remove the trailing 's' from "revisions" and "steps" when there is only one. Signed-off-by: David Ripton <dripton@ripton.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-18Update draft release notes to 1.7.0Libravatar Junio C Hamano1-1/+16
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-18Merge branch 'maint'Libravatar Junio C Hamano3-6/+22
* maint: Update draft release notes to 1.6.6.1 grep: NUL terminate input from a file fast-import: tag may point to any object type
2010-01-18Update draft release notes to 1.6.6.1Libravatar Junio C Hamano1-1/+16
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-18Merge branch 'dp/maint-1.6.5-fast-import-non-commit-tag' into maintLibravatar Junio C Hamano1-5/+5
* dp/maint-1.6.5-fast-import-non-commit-tag: fast-import: tag may point to any object type
2010-01-18Merge branch 'jc/rerere'Libravatar Junio C Hamano12-18/+77
* jc/rerere: Teach --[no-]rerere-autoupdate option to merge, revert and friends
2010-01-18Merge branch 'pc/uninteresting-submodule-disappear-upon-switch-branches'Libravatar Junio C Hamano2-2/+19
* pc/uninteresting-submodule-disappear-upon-switch-branches: Remove empty directories when checking out a commit with fewer submodules
2010-01-18Merge branch 'nd/include-termios-for-osol'Libravatar Junio C Hamano1-0/+1
* nd/include-termios-for-osol: Add missing #include to support TIOCGWINSZ on Solaris
2010-01-18Merge branch 'js/windows'Libravatar Junio C Hamano8-133/+329
* js/windows: Do not use date.c:tm_to_time_t() from compat/mingw.c MSVC: Windows-native implementation for subset of Pthreads API MSVC: Fix an "incompatible pointer types" compiler warning Windows: avoid the "dup dance" when spawning a child process Windows: simplify the pipe(2) implementation Windows: boost startup by avoiding a static dependency on shell32.dll Windows: disable Python
2010-01-18Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into maintLibravatar Junio C Hamano1-0/+1
* jm/maint-1.6.5-grep-NUL-terminate: grep: NUL terminate input from a file
2010-01-18grep: NUL terminate input from a fileLibravatar Jim Meyering1-0/+1
Internally "git grep" runs regexec(3) that expects its input string to be NUL terminated. When searching inside blob data, read_sha1_file() automatically gives such a buffer, but builtin-grep.c forgot to put the NUL at the end, even though it allocated enough space for it. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-17Update draft release notes to 1.7.0Libravatar Junio C Hamano1-1/+38
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-17Merge branch 'tc/test-locate-httpd'Libravatar Junio C Hamano1-6/+24
* tc/test-locate-httpd: t/lib-http.sh: Restructure finding of default httpd location
2010-01-17Merge branch 'jh/commit-status'Libravatar Junio C Hamano4-3/+134
* jh/commit-status: t7502: test commit.status, --status and --no-status commit: support commit.status, --status, and --no-status Conflicts: Documentation/git-commit.txt builtin-commit.c
2010-01-17Merge branch 'jn/makefile'Libravatar Junio C Hamano2-34/+26
* jn/makefile: Makefile: consolidate .FORCE-* targets Makefile: learn to generate listings for targets requiring special flags Makefile: use target-specific variable to pass flags to cc Makefile: regenerate assembler listings when asked
2010-01-17Merge branch 'jc/maint-1.6.1-checkout-m-custom-merge'Libravatar Junio C Hamano2-1/+58
* jc/maint-1.6.1-checkout-m-custom-merge: checkout -m path: fix recreating conflicts Conflicts: t/t7201-co.sh
2010-01-17Merge branch 'tc/clone-v-progress'Libravatar Junio C Hamano6-7/+20
* tc/clone-v-progress: clone: use --progress to force progress reporting clone: set transport->verbose when -v/--verbose is used git-clone.txt: reword description of progress behaviour check stderr with isatty() instead of stdout when deciding to show progress Conflicts: transport.c
2010-01-17Merge branch 'tc/smart-http-restrict'Libravatar Junio C Hamano7-260/+362
* tc/smart-http-restrict: Test t5560: Fix test when run with dash Smart-http tests: Test http-backend without curl or a webserver Smart-http tests: Break test t5560-http-backend into pieces Smart-http tests: Improve coverage in test t5560 Smart-http: check if repository is OK to export before serving it
2010-01-17Merge branch 'jk/run-command-use-shell'Libravatar Junio C Hamano11-35/+69
* jk/run-command-use-shell: t4030, t4031: work around bogus MSYS bash path conversion diff: run external diff helper with shell textconv: use shell to run helper editor: use run_command's shell feature run-command: optimize out useless shell calls run-command: convert simple callsites to use_shell t0021: use $SHELL_PATH for the filter script run-command: add "use shell" option
2010-01-17Merge branch 'sr/gfi-options'Libravatar Junio C Hamano3-86/+462
* sr/gfi-options: fast-import: add (non-)relative-marks feature fast-import: allow for multiple --import-marks= arguments fast-import: test the new option command fast-import: add option command fast-import: add feature command fast-import: put marks reading in its own function fast-import: put option parsing code in separate functions
2010-01-17Update COPYING with GPLv2 with new FSF addressLibravatar Junio C Hamano1-13/+12
The mailing address of FSF changed quite a while ago. Also the expansion of the acronym LGPL (which we don't use) is "Lesser GPL" not "Library GPL" these days in recent copies of GPLv2. Update the copy we have with a fresh download of <http://www.gnu.org/licenses/gpl-2.0.txt>. This incidentally removes form-feeds in the text we retained for all these years. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Do not use date.c:tm_to_time_t() from compat/mingw.cLibravatar Johannes Sixt1-17/+19
To implement gettimeofday(), a broken-down UTC time was requested from the system using GetSystemTime(), then tm_to_time_t() was used to convert it to a time_t because it does not look at the current timezone, which mktime() would do. Use GetSystemTimeAsFileTime() and a different conversion path to avoid this back-reference from the compatibility layer to the generic code. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16MSVC: Windows-native implementation for subset of Pthreads APILibravatar Andrzej K. Haczewski6-11/+217
This patch implements native to Windows subset of pthreads API used by Git. It allows to remove Pthreads for Win32 dependency for MSVC, msysgit and Cygwin. [J6t: If the MinGW build was built as part of the msysgit build environment, then threading was already enabled because the pthreads-win32 package is available in msysgit. With this patch, we can now enable threaded code unconditionally.] Signed-off-by: Andrzej K. Haczewski <ahaczewski@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Merge branch 'maint'Libravatar Junio C Hamano3-4/+6
* maint: Fix uninitialized variable in get_refs_via_rsync(). Document git-blame triple -C option
2010-01-16Merge branch 'cc/reset-more'Libravatar Junio C Hamano1-10/+10
* cc/reset-more: t7111: fix bad HEAD in tests with unmerged entries
2010-01-16MSVC: Fix an "incompatible pointer types" compiler warningLibravatar Ramsay Jones2-25/+19
In particular, the following warning is issued while compiling compat/msvc.c: ...mingw.c(223) : warning C4133: 'function' : incompatible \ types - from '_stati64 *' to '_stat64 *' which relates to a call of _fstati64() in the mingw_fstat() function definition. This is caused by various layers of macro magic and attempts to avoid macro redefinition compiler warnings. For example, the call to _fstati64() mentioned above is actually a call to _fstat64(), and expects a pointer to a struct _stat64 rather than the struct _stati64 which is passed to mingw_fstat(). The definition of struct _stati64 given in compat/msvc.h had the same "shape" as the definition of struct _stat64, so the call to _fstat64() does not actually cause any runtime errors, but the structure types are indeed incompatible. In order to avoid the compiler warning, we add declarations for the mingw_lstat() and mingw_fstat() functions and supporting macros to msvc.h, suppressing the corresponding declarations in mingw.h, so that we can use the appropriate structure type (and function) names from the msvc headers. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Windows: avoid the "dup dance" when spawning a child processLibravatar Johannes Sixt3-49/+50
When stdin, stdout, or stderr must be redirected for a child process that on Windows is spawned using one of the spawn() functions of Microsoft's C runtime, then there is no choice other than to 1. make a backup copy of fd 0,1,2 with dup 2. dup2 the redirection source fd into 0,1,2 3. spawn 4. dup2 the backup back into 0,1,2 5. close the backup copy and the redirection source We used this idiom as well -- but we are not using the spawn() functions anymore! Instead, we have our own implementation. We had hardcoded that stdin, stdout, and stderr of the child process were inherited from the parent's fds 0, 1, and 2. But we can actually specify any fd. With this patch, the fds to inherit are passed from start_command()'s WIN32 section to our spawn implementation. This way, we can avoid the backup copies of the fds. The backup copies were a bug waiting to surface: The OS handles underlying the dup()ed fds were inherited by the child process (but were not associated with a file descriptor in the child). Consequently, the file or pipe represented by the OS handle remained open even after the backup copy was closed in the parent process until the child exited. Since our implementation of pipe() creates non-inheritable OS handles, we still dup() file descriptors in start_command() because dup() happens to create inheritable duplicates. (A nice side effect is that the fd cleanup in start_command is the same for Windows and Unix and remains unchanged.) Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Windows: simplify the pipe(2) implementationLibravatar Johannes Sixt1-29/+8
Our implementation of pipe() must create non-inheritable handles for the reason that when a child process is started, there is no opportunity to close the unneeded pipe ends in the child (on POSIX this is done between fork() and exec()). Previously, we used the _pipe() function provided by Microsoft's C runtime (which creates inheritable handles) and then turned the handles into non-inheritable handles using the DuplicateHandle() API. Simplify the procedure by using the CreatePipe() API, which can create non-inheritable handles right from the beginning. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Windows: boost startup by avoiding a static dependency on shell32.dllLibravatar Johannes Sixt1-2/+14
This DLL is only needed to invoke the browser in a "git help" call. By looking up the only function that we need at runtime, we can avoid the startup costs of this DLL. DLL usage can be profiled with Microsoft's Dependency Walker. For example, a call to "git diff-files" loaded before: 19 DLLs after: 9 DLLs As a result, the runtime of 'make -j2 test' went down from 16:00min to 12:40min on one of my boxes. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16Windows: disable PythonLibravatar Erik Faye-Lund1-0/+2
Python is not commonly installed on Windows machines, so we should disable it there by default. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-16t7111: fix bad HEAD in tests with unmerged entriesLibravatar Christian Couder1-10/+10
When testing what happens on unmerged entries, the HEAD is the commit we are starting from before the merge that fails and create the unmerged entries. It is not the commit before. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-15Fix uninitialized variable in get_refs_via_rsync().Libravatar Richard Weinberger1-1/+1
This fixes a crash when cloning via rsync://. Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-15Test t5560: Fix test when run with dashLibravatar Tarmigan Casebolt1-5/+10
A command invocation preceded by variable assignments, i.e. VAR1=VAL1 VAR2=VAL2 ... command args are implemented by dash and ksh in such a way not to export these variables, and keep the values after the command finishes, when the command is a shell function. POSIX.1 "2.9.5 Function Definition Command" specifies this behaviour. Many shells however treat this construct the same way as they are calling external commands. They export the variables during the duration of command, and resets their values after command returns. The test relied on the behaviour of the latter kind. Reported-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-14Document git-blame triple -C optionLibravatar Ramkumar Ramachandra2-3/+5
Lift the explanation of -CCC option in the source to the documentation. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-14fast-import: tag may point to any object typeLibravatar Dmitry Potapov1-5/+5
If you tried to export the official git repository, and then to import it back then git-fast-import would die complaining that "Mark :1 not a commit". Accordingly to a generated crash file, Mark 1 is not a commit but a blob, which is pointed by junio-gpg-pub tag. Because git-tag allows to create such tags, git-fast-import should import them. Signed-off-by: Dmitry Potapov <dpotapov@gmail.com> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-13Merge branch 'jc/checkout-merge-base'Libravatar Junio C Hamano7-5/+222
* jc/checkout-merge-base: rebase -i: teach --onto A...B syntax rebase: fix --onto A...B parsing and add tests "rebase --onto A...B" replays history on the merge base between A and B "checkout A...B" switches to the merge base between A and B
2010-01-13Merge branch 'rs/maint-archive-match-pathspec'Libravatar Junio C Hamano1-1/+24
* rs/maint-archive-match-pathspec: archive: complain about path specs that don't match anything
2010-01-13Merge branch 'il/vcs-helper'Libravatar Junio C Hamano7-93/+505
* il/vcs-helper: Reset possible helper before reusing remote structure Remove special casing of http, https and ftp Support remote archive from all smart transports Support remote helpers implementing smart transports Support taking over transports Refactor git transport options parsing Pass unknown protocols to external protocol handlers Support mandatory capabilities Add remote helper debug mode Conflicts: Documentation/git-remote-helpers.txt transport-helper.c
2010-01-13Merge branch 'cc/reset-more'Libravatar Junio C Hamano7-20/+435
* cc/reset-more: t7111: check that reset options work as described in the tables Documentation: reset: add some missing tables Fix bit assignment for CE_CONFLICTED "reset --merge": fix unmerged case reset: use "unpack_trees()" directly instead of "git read-tree" reset: add a few tests for "git reset --merge" Documentation: reset: add some tables to describe the different options reset: improve mixed reset error message when in a bare repo
2010-01-13Merge branch 'nd/sparse'Libravatar Junio C Hamano33-102/+1049
* nd/sparse: (25 commits) t7002: test for not using external grep on skip-worktree paths t7002: set test prerequisite "external-grep" if supported grep: do not do external grep on skip-worktree entries commit: correctly respect skip-worktree bit ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID tests: rename duplicate t1009 sparse checkout: inhibit empty worktree Add tests for sparse checkout read-tree: add --no-sparse-checkout to disable sparse checkout support unpack-trees(): ignore worktree check outside checkout area unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout unpack-trees.c: generalize verify_* functions unpack-trees(): add CE_WT_REMOVE to remove on worktree alone Introduce "sparse checkout" dir.c: export excluded_1() and add_excludes_from_file_1() excluded_1(): support exclude files in index unpack-trees(): carry skip-worktree bit over in merged_entry() Read .gitignore from index if it is skip-worktree Avoid writing to buffer in add_excludes_from_file_1() ... Conflicts: .gitignore Documentation/config.txt Documentation/git-update-index.txt Makefile entry.c t/t7002-grep.sh
2010-01-13t7502: test commit.status, --status and --no-statusLibravatar Junio C Hamano1-0/+109
Make sure that the status information: - is shown as before without configuration nor command line option; - is shown if commit.status is set to true and no command line option is given, or --status is explicitly given; - is not shown if commit.status is set to false and no command line option is given, or --no-status is explicitly given. Also make sure that the way lines taken from the custom --template appear in the log message editor is not changed at all. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-13commit: support commit.status, --status, and --no-statusLibravatar James P. Howard, II3-3/+25
A new configuration variable commit.status, and new command line options --status, and --no-status control whether or not the git status information is included in the commit message template when using an editor to prepare the commit message. It does not affect the effects of a user's commit.template settings. Signed-off-by: James P. Howard, II <jh@jameshoward.us> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-12Merge branch 'maint'Libravatar Junio C Hamano4-5/+3
* maint: remote-curl: Fix Accept header for smart HTTP connections grep: -L should show empty files rebase--interactive: Ignore comments and blank lines in peek_next_command
2010-01-12lockfile: show absolute filename in unable_to_lock_messageLibravatar Matthieu Moy1-2/+3
When calling a git command from a subdirectory and a file locking fails, the user will get a path relative to the root of the worktree, which is invalid from the place where the command is ran. Make it easy for the user to know which file it is. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-12hg-to-git: fix COMMITTER type-oLibravatar Bart Trojanowski1-4/+4
This script passes the author and committer to git-commit via environment variables, but it was missing the seccond T of COMMITTER in a few places. Signed-off-by: Bart Trojanowski <bart@jukie.net> Acked-by: Stelian Pop <stelian@popies.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-12remote-curl: Fix Accept header for smart HTTP connectionsLibravatar Shawn O. Pearce2-2/+2
We actually expect to see an application/x-git-upload-pack-result but we lied and said we Accept *-response. This was a typo on my part when I was writing the code. Fortunately the wrong Accept header had no real impact, as the deployed git-http-backend servers were not testing the Accept header before they returned their content. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>