summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-08-19Make trailing LF optional for all fast-import commandsLibravatar Shawn O. Pearce3-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>
2007-08-19Make trailing LF following fast-import `data` commands optionalLibravatar Shawn O. Pearce3-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>
2007-08-19Teach fast-import to ignore lines starting with '#'Libravatar Shawn O. Pearce3-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>
2007-08-19Use handy ALLOC_GROW macro in fast-import when possibleLibravatar Shawn O. Pearce1-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>
2007-08-19Actually allow TAG_FIXUP branches in fast-importLibravatar Shawn O. Pearce2-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>
2007-08-19Fix whitespace in "Format of STDIN stream" of fast-importLibravatar Alex Riesen1-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>
2007-08-19git-completion.bash - add support for git-bundleLibravatar Mark Levedahl1-0/+32
Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-08-17Clarify commit-tree documentationLibravatar Mike Hommey1-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>
2007-08-17Minor clarifications to git-filter-branch usage and docLibravatar Brian Gernhardt2-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>
2007-08-17Fix small typo in git send-email man page.Libravatar Sean Estabrooks1-1/+1
Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-17git-submodule: re-enable 'status' as the default subcommandLibravatar Lars Hjemli1-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>
2007-08-16Clean-up read-tree error condition.Libravatar Junio C Hamano1-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>
2007-08-16Clarify actual behavior of 'git add' and ignored filesLibravatar Brian Downing1-4/+6
Signed-off-by: Brian Downing <bdowning@lavos.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-16t1301-shared-repo.sh: fix 'stat' portability issueLibravatar Arjen Laarhoven1-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>
2007-08-16Documentation/git-rebase: fix an exampleLibravatar Junio C Hamano1-1/+1
The example miscounted the commit to rebase from. Noticed by Cliff Brake. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-15git-clone: allow --bare cloneLibravatar Junio C Hamano2-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>
2007-08-15pack-objects: remove bogus arguments to delta_cacheable()Libravatar Nicolas Pitre1-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>
2007-08-15git-apply: apply submodule changesLibravatar Sven Verdoolaege3-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>
2007-08-15Update documentation links for older releases.Libravatar Junio C Hamano1-1/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-15Merge branch 'maint' to sync with 1.5.2.5Libravatar Junio C Hamano3-20/+92
* maint: GIT 1.5.2.5 git-add -u paths... now works from subdirectory Fix "git add -u" data corruption.
2007-08-15Fix read-tree merging more than 3 trees using 3-way mergeLibravatar Junio C Hamano1-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>
2007-08-15GIT 1.5.2.5Libravatar Junio C Hamano3-2/+32
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-15git-add -u paths... now works from subdirectoryLibravatar Salikh Zakirov2-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>
2007-08-15Fix "git add -u" data corruption.Libravatar Junio C Hamano2-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>
2007-08-15path-list.c: always free strdup'ed pathsLibravatar René Scharfe2-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>
2007-08-15git-svn: fix log with single revision against a non-HEAD branchLibravatar Eric Wong2-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>
2007-08-15GIT 1.5.3-rc5Libravatar Junio C Hamano1-19/+62
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-14attr.c: read .gitattributes from index as well.Libravatar Junio C Hamano3-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>
2007-08-14attr.c: refactoringLibravatar Junio C Hamano1-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>
2007-08-14Add read_cache to builtin-check-attrLibravatar Brian Downing1-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>
2007-08-14diff: squelch empty diffs even moreLibravatar René Scharfe3-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>
2007-08-14Use xmkstemp() instead of mkstemp()Libravatar Luiz Fernando N. Capitulino6-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>
2007-08-14Introduces xmkstemp()Libravatar Luiz Fernando N. Capitulino1-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>
2007-08-14Avoid ambiguous error message if pack.idx header is wrongLibravatar Luiz Fernando N. Capitulino1-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>
2007-08-14merge-recursive: do not rudely die on binary mergeLibravatar Junio C Hamano2-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>
2007-08-14Add --log-size to git log to print message sizeLibravatar Marco Costalba4-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>
2007-08-14git-diff: squelch "empty" diffsLibravatar Junio C Hamano3-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>
2007-08-13Improved hint on how to set identityLibravatar Steffen Prohaska1-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>
2007-08-13Add a test for git-commit being confused by relative GIT_DIRLibravatar David Kastrup1-0/+55
Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-13git-sh-setup.sh: make GIT_DIR absoluteLibravatar David Kastrup3-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>
2007-08-13Allow git-svnimport to take "" as the trunk directory.Libravatar Alberto Bertogli1-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>
2007-08-13Fix t5701-clone-local for white space from wcLibravatar Brian Gernhardt1-2/+2
Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-13git-p4: Fix the sorting of changelists when cloning a Perforce repository.Libravatar Reece H. Dunn1-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>
2007-08-13diff: don't run pager if user asked for a diff style exit codeLibravatar René Scharfe2-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>
2007-08-13builtin-bundle create - use lock_fileLibravatar Junio C Hamano1-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>
2007-08-13t3902 - skip test if file system doesn't support HT in namesLibravatar Mark Levedahl1-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>
2007-08-13git-add: Add support for --refresh option.Libravatar Alexandre Julliard5-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>
2007-08-13t3404: fix "fake-editor"Libravatar Junio C Hamano1-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>
2007-08-13git.el: Always set the current directory in the git-diff buffer.Libravatar Alexandre Julliard1-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>
2007-08-13git.el: Add support for interactive diffs.Libravatar Alexandre Julliard1-1/+7
Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>