summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Make trailing LF optional for all fast-import commandsShawn O. Pearce2007-08-193-17/+74
| | | | | | | | | | | | | | | | | | For the same reasons as the prior change we want to allow frontends to omit the trailing LF that usually delimits commands. In some cases these just make the input stream more verbose looking than it needs to be, and its just simpler for the frontend developer to get started if our parser is slightly more lenient about where an LF is required and where it isn't. To make this optional LF feature work we now have to buffer up to one line of input in command_buf. This buffering can happen if we look at the current input command but don't recognize it at this point in the code. In such a case we need to "unget" the entire line, but we cannot depend upon the stdio library to let us do ungetc() for that many characters at once. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Make trailing LF following fast-import `data` commands optionalShawn O. Pearce2007-08-193-5/+39
| | | | | | | | | | | | A few fast-import frontend developers have found it odd that we require the LF following a `data` command, especially in the exact byte count format. Technically we don't need this LF to parse the stream properly, but having it here does make the stream more readable to humans. We can easily make the LF optional by peeking at the next byte available from the stream and pushing it back into the buffer if its not LF. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Teach fast-import to ignore lines starting with '#'Shawn O. Pearce2007-08-193-2/+69
| | | | | | | | | | | | | | | | | | | | | | Several frontend developers have asked that some form of stream comments be permitted within a fast-import data stream. This way they can include information from their own frontend program about where specific data was taken from in the source system, or about a decision that their frontend may have made while creating the fast-import data stream. This change introduces comments in the Bourne-shell/Tcl/Perl style. Lines starting with '#' are ignored, up to and including the LF. Unlike the above mentioned three languages however we do not look for and ignore leading whitespace. This just simplifies the definition of the comment format and the code that parses them. To make comments work we had to stop using read_next_command() within cmd_data() and directly invoke read_line() during the inline variant of the function. This is necessary to retain any lines of the input data that might otherwise look like a comment to fast-import. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Use handy ALLOC_GROW macro in fast-import when possibleShawn O. Pearce2007-08-191-6/+1
| | | | | | | | Instead of growing our buffer by hand during the inline variant of cmd_data() we can save a few lines of code and just use the nifty new ALLOC_GROW macro already available to us. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Actually allow TAG_FIXUP branches in fast-importShawn O. Pearce2007-08-192-1/+52
| | | | | | | | | | | | | | | | | | | Michael Haggerty <mhagger@alum.mit.edu> noticed while debugging a Git backend for cvs2svn that fast-import was barfing when he tried to use "TAG_FIXUP" as a branch name for temporary work needed to cleanup the tree prior to creating an annotated tag object. The reason we were rejecting the branch name was check_ref_format() returns -2 when there are less than 2 '/' characters in the input name. TAG_FIXUP has 0 '/' characters, but is technically just as valid of a ref as HEAD and MERGE_HEAD, so we really should permit it (and any other similar looking name) during import. New test cases have been added to make sure we still detect very wrong branch names (e.g. containing [ or starting with .) and yet still permit reasonable names (e.g. TAG_FIXUP). Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Fix whitespace in "Format of STDIN stream" of fast-importAlex Riesen2007-08-191-11/+11
| | | | | | | Something probably assumed that HT indentation is 4 characters. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-completion.bash - add support for git-bundleMark Levedahl2007-08-191-0/+32
| | | | | Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Clarify commit-tree documentationMike Hommey2007-08-171-9/+6
| | | | | | | | As per http://marc.info/?l=git&m=118737219702802&w=2 , clarify git-commit-tree documentation. Signed-off-by: Mike Hommey <mh@glandium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Minor clarifications to git-filter-branch usage and docBrian Gernhardt2007-08-172-2/+2
| | | | | | | | | - Remove "DESTBRANCH" from usage, as it rewrites the branches given. - Remove an = from an example usage, as the script doesn't understand it. Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Fix small typo in git send-email man page.Sean Estabrooks2007-08-171-1/+1
| | | | | Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-submodule: re-enable 'status' as the default subcommandLars Hjemli2007-08-171-1/+1
| | | | | | | | This was broken as part of ecda072380. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Acked-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Clean-up read-tree error condition.Junio C Hamano2007-08-161-6/+3
| | | | | | | | | | This is a follow-up to f34f2b0b; list_tree() function is where it first notices that the command line fed too many trees for us to handle, so move the error exit message to there, and raise the MAX_TREES to 8 (not that it matters very much in practice). Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Clarify actual behavior of 'git add' and ignored filesBrian Downing2007-08-161-4/+6
| | | | | Signed-off-by: Brian Downing <bdowning@lavos.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t1301-shared-repo.sh: fix 'stat' portability issueArjen Laarhoven2007-08-161-1/+10
| | | | | | | | | The t1301-shared-repo.sh testscript uses /usr/bin/stat to get the file mode, which isn't portable. Implement the test in shell using 'ls' as shown by Junio. Signed-off-by: Arjen Laarhoven <arjen@yaph.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Documentation/git-rebase: fix an exampleJunio C Hamano2007-08-161-1/+1
| | | | | | | The example miscounted the commit to rebase from. Noticed by Cliff Brake. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-clone: allow --bare cloneJunio C Hamano2007-08-152-2/+10
| | | | | | | This is a stop-gap to work around problem with git-init without intrusive changes. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* pack-objects: remove bogus arguments to delta_cacheable()Nicolas Pitre2007-08-151-4/+3
| | | | | | | | Not only are they unused, but the order in the function declaration and the actual usage don't match. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-apply: apply submodule changesSven Verdoolaege2007-08-153-25/+117
| | | | | | | | | | | | | Apply "Subproject commit HEX" changes produced by git-diff. As usual in the current git, only the superproject itself is actually modified (possibly creating empty directories for new submodules). Any checked-out submodule is left untouched and is not required to be up-to-date. With clean-ups from Junio C Hamano. Signed-off-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Update documentation links for older releases.Junio C Hamano2007-08-151-1/+2
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint' to sync with 1.5.2.5Junio C Hamano2007-08-153-20/+92
|\ | | | | | | | | | | | | * maint: GIT 1.5.2.5 git-add -u paths... now works from subdirectory Fix "git add -u" data corruption.
| * GIT 1.5.2.5v1.5.2.5Junio C Hamano2007-08-153-2/+32
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * git-add -u paths... now works from subdirectorySalikh Zakirov2007-08-152-4/+18
| | | | | | | | | | | | | | | | | | | | git-add -u also takes the path limiters, but unlike the command without the -u option, the code forgot that it could be invoked from a subdirectory, and did not correctly handle the prefix. Signed-off-by: Salikh Zakirov <salikh@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Fix "git add -u" data corruption.Junio C Hamano2007-08-152-16/+44
| | | | | | | | | | | | | | | | | | | | | | | | This applies to 'maint' to fix a rather serious data corruption issue. When "git add -u" affects a subdirectory in such a way that the only changes to its contents are path removals, the next tree object written out of that index was bogus, as the remove codepath forgot to invalidate the cache-tree entry. Reported by Salikh Zakirov. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix read-tree merging more than 3 trees using 3-way mergeJunio C Hamano2007-08-151-2/+6
| | | | | | | | | | | | | | | | | | | | For multi-base merges, we allowed read-tree -m to take more than three trees (the last two are our and their branches, and all the earlier ones, typically one but potentially more, are used as the merge base). Unfortunately, the conversion done by commit 933bf40 broke this. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | path-list.c: always free strdup'ed pathsRené Scharfe2007-08-152-7/+9
| | | | | | | | | | | | | | | | | | | | Always free .paths if .strdup_paths is set, no matter if the parameter free_items is set or not, plugging a minor memory leak. And to clarify the meaning of the flag, rename it to free_util, since it now only affects the freeing of the .util field. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: fix log with single revision against a non-HEAD branchEric Wong2007-08-152-9/+63
| | | | | | | | | | | | | | | | | | Running git-svn log <ref> -r<rev> against a <ref> other than the current HEAD did not work if the <rev> was exclusive to the other branch. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | GIT 1.5.3-rc5v1.5.3-rc5Junio C Hamano2007-08-151-19/+62
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | attr.c: read .gitattributes from index as well.Junio C Hamano2007-08-143-11/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes .gitattributes files to be read from the index when they are not checked out to the work tree. This is in line with the way we always allowed low-level tools to operate in sparsely checked out work tree in a reasonable way. It swaps the order of new file creation and converting the blob to work tree representation; otherwise when we are in the middle of checking out .gitattributes we would notice an empty but unwritten .gitattributes file in the work tree and will ignore the copy in the index. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | attr.c: refactoringJunio C Hamano2007-08-141-26/+41
| | | | | | | | | | | | | | | | | | | | | | This splits out a common routine that parses a single line of attribute file and adds it to the attr_stack. It should not change any behaviour, other than attrs array in the attr_stack structure is now grown with alloc_nr() macro, instead of one by one, which relied on xrealloc() to give enough slack to be efficient enough. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Add read_cache to builtin-check-attrBrian Downing2007-08-141-0/+5
| | | | | | | | | | | | | | | | We can now read .gitattributes files out of the index, but the index must be loaded for this to work. Signed-off-by: Brian Downing <bdowning@lavos.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | diff: squelch empty diffs even moreRené Scharfe2007-08-143-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we compare two non-tracked files, or explicitly specify --no-index, the suggestion to run git-status is not helpful. The patch adds a new diff_options bitfield member, no_index, that is used instead of the special value of -2 of the rev_info field max_count to indicate that the index is not to be used. This makes it possible to pass that flag down to diffcore_skip_stat_unmatch(), which only has one diff_options parameter. This could even become a cleanup if we removed all assignments of max_count to a value of -2 (viz. replacement of a magic value with a self-documenting field name) but I didn't dare to do that so late in the rc game.. The no_index bit, if set, then tells diffcore_skip_stat_unmatch() to not account for any skipped stat-mismatches, which avoids the suggestion to run git-status. Signed-off-by: Rene Scharfe <rene.scharfe@lsfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Use xmkstemp() instead of mkstemp()Luiz Fernando N. Capitulino2007-08-146-17/+7
| | | | | | | | | | | | | | | | xmkstemp() performs error checking and prints a standard error message when an error occur. Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Introduces xmkstemp()Luiz Fernando N. Capitulino2007-08-141-0/+10
| | | | | | | | | | | | | | | | This is a wrapper for mkstemp() that performs error checking and calls die() when an error occur. Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Avoid ambiguous error message if pack.idx header is wrongLuiz Fernando N. Capitulino2007-08-141-2/+2
| | | | | | | | | | | | | | | | | | Print the index version when an error occurs so the user knows what type of header (and size) we thought the index should have had. Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | merge-recursive: do not rudely die on binary mergeJunio C Hamano2007-08-142-23/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you try to merge a path that involves binary file-level merge, merge-recursive died rudely without cleaning up its own mess. A files added by the merge were left in the working tree, but the index was not written out (because it just punted and died), so it was cumbersome for the user to retry it by first running "git reset --hard". This changes merge-recursive to still warn but do the "binary" merge for such a path; leave the "our" version in the working tree, but still keep the path unmerged so that the user can sort it out. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Add --log-size to git log to print message sizeMarco Costalba2007-08-144-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this option git-log prints log message size just before the corresponding message. Porcelain tools could use this to speedup parsing of git-log output. Note that size refers to log message only. If also patch content is shown its size is not included. In case it is not possible to know the size upfront size value is set to zero. Signed-off-by: Marco Costalba <mcostalba@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-diff: squelch "empty" diffsJunio C Hamano2007-08-143-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After starting to edit a working tree file but later when your edit ends up identical to the original (this can also happen when you ran a wholesale regexp replace with something like "perl -i" that does not actually modify many of the paths), "git diff" between the index and the working tree outputs many "empty" diffs that show "diff --git" headers and nothing else, because these paths are stat-dirty. While it was a way to warn the user that the earlier action of the user made the index ineffective as an optimization mechanism, it was felt too loud for the purpose of warning even to experienced users, and also resulted in confusing people new to git. This replaces the "empty" diffs with a single warning message at the end. Having many such paths hurts performance, and you can run "git-update-index --refresh" to update the lstat(2) information recorded in the index in such a case. "git-status" does so as a side effect, and that is more familiar to the end-user, so we recommend it to them. The change affects only "git diff" that outputs patch text, because that is where the annoyance of too many "empty" diff is most strongly felt, and because the warning message can be safely ignored by downstream tools without getting mistaken as part of the patch. For the low-level "git diff-files" and "git diff-index", the traditional behaviour is retained. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Improved hint on how to set identitySteffen Prohaska2007-08-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | The first thing we teach in the tutorial is to set the default identity in $HOME/.gitconfig using "git config --global". The suggestion in the error message should match the order, while hinting that per repository identity can later be configured differently. Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Add a test for git-commit being confused by relative GIT_DIRDavid Kastrup2007-08-131-0/+55
| | | | | | | | | | Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-sh-setup.sh: make GIT_DIR absoluteDavid Kastrup2007-08-133-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quite a few of the scripts are rather careless about using GIT_DIR while changing directories. Some try their hands (with different likelihood of success) in making GIT_DIR absolute. This patch lets git-sh-setup.sh cater for absolute directories (in a way that should work reliably also with non-Unix path names) and removes the respective kludges in git-filter-branch.sh and git-instaweb.sh. Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Allow git-svnimport to take "" as the trunk directory.Alberto Bertogli2007-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some repositories started with the trunk in "/" and then moved it to the standard "trunk/" location. On these repositories, the correct thing would be to call git-svnimport -T "", but because of the way the options are handled, it uses the default "trunk" instead of the given empty string. This patch fixes that behaviour. Reported by Leandro Lucarella <llucax@gmail.com>. Signed-off-by: Alberto Bertogli <albertito@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix t5701-clone-local for white space from wcBrian Gernhardt2007-08-131-2/+2
| | | | | | | | | | Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-p4: Fix the sorting of changelists when cloning a Perforce repository.Reece H. Dunn2007-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | When performing a git-p4 clone operation on a Perforce repository, where the changelists change in order of magnitude (e.g. 100 to 1000), the set of changes to import from is not sorted properly. This is because the data in the list is strings not integers. The other place where this is done already converts the value to an integer, so it is not affected. Acked-by: Simon Hausmann <simon@lst.de>
* | diff: don't run pager if user asked for a diff style exit codeRené Scharfe2007-08-132-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | As Wincent Colaiuta found out, it's a bit unexpected for git diff to start a pager even when the --quiet option is specified. The problem is that the pager hides the return code -- which is the only output we're interested in in this case. Push pager setup down into builtin-diff.c and don't start the pager if --exit-code or --quiet (which implies --exit-code) was specified. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | builtin-bundle create - use lock_fileJunio C Hamano2007-08-131-8/+10
| | | | | | | | | | | | | | "git bundle create" left an invalid, partially written bundle if an error occured during creation. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t3902 - skip test if file system doesn't support HT in namesMark Levedahl2007-08-131-0/+6
| | | | | | | | | | | | | | | | Windows / cygwin don't support HT, LF, or TAB in file name so this test is meaningless there. Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-add: Add support for --refresh option.Alexandre Julliard2007-08-135-5/+51
| | | | | | | | | | | | | | | | This allows to refresh only a subset of the project files, based on the specified pathspecs. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t3404: fix "fake-editor"Junio C Hamano2007-08-131-17/+19
| | | | | | | | | | | | | | | | | | | | | | | | Here-text to create fake-editor did not use <<\EOF but <<EOF, but there was no point doing so, as it quoted all the variables anyway. Simplify it. Also futureproof the special mode to edit COMMIT_EDITMSG file; it is interested in editing the COMMIT_EDITMSG file in any GIT_DIR; GIT_DIR may be given as an absolute path. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Always set the current directory in the git-diff buffer.Alexandre Julliard2007-08-131-4/+6
| | | | | | | | | | | | | | This allows jumping to the correct file with the diff-mode commands. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git.el: Add support for interactive diffs.Alexandre Julliard2007-08-131-1/+7
| | | | | | | | | | Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>