summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix mishandling of $Id$ expanded in the repository copy in convert.cAndy Parkins2007-05-261-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the repository contained an expanded ident keyword (i.e. $Id:XXXX$), then the wrong bytes were discarded, and the Id keyword was not expanded. The fault was in convert.c:ident_to_worktree(). Previously, when a "$Id:" was found in the repository version, ident_to_worktree() would search for the next "$" after this, and discarded everything it found until then. That was done with the loop: do { ch = *cp++; if (ch == '$') break; rem--; } while (rem); The above loop left cp pointing one character _after_ the final "$" (because of ch = *cp++). This was different from the non-expanded case, were cp is left pointing at the "$", and was different from the comment which stated "discard up to but not including the closing $". This patch fixes that by making the loop: do { ch = *cp; if (ch == '$') break; cp++; rem--; } while (rem); That is, cp is tested _then_ incremented. This loop exits if it finds a "$" or if it runs out of bytes in the source. After this loop, if there was no closing "$" the expansion is skipped, and the outer loop is allowed to continue leaving this non-keyword as it was. However, when the "$" is found, size is corrected, before running the expansion: size -= (cp - src); This is wrong; size is going to be corrected anyway after the expansion, so there is no need to do it here. This patch removes that redundant correction. To help find this bug, I heavily commented the routine; those comments are included here as a bonus. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'master' of git://repo.or.cz/git/fastimport into maintJunio C Hamano2007-05-241-10/+71
|\ | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://repo.or.cz/git/fastimport: Update bash completion for git-config options Teach bash completion about recent log long options Teach bash completion about 'git remote update' Update bash completion header documentation Remove a duplicate --not option in bash completion Teach bash completion about git-shortlog Hide the plumbing diff-{files,index,tree} from bash completion Update bash completion to ignore some more plumbing commands
| * Update bash completion for git-config optionsShawn O. Pearce2007-05-241-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A few new configuration options grew out of the woodwork during the 1.5.2 series. Most of these are pretty easy to support a completion of, so we do so. I wanted to also add completion support for the <driver> part of merge.<driver>.name but to do that we have to look at all of the .gitattributes files and guess what the unique set of <driver> strings would be. Since this appears to be non-trivial I'm punting on it at this time. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Teach bash completion about recent log long optionsShawn O. Pearce2007-05-241-2/+2
| | | | | | | | | | | | | | | | | | | | (Somewhat) recently git-log learned about --reverse (to show commits in the opposite order) and a looong time ago I think it learned about --raw (to show the raw diff, rather than a unified diff). These are both useful options, so we should make them easy for the user to complete. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Teach bash completion about 'git remote update'Shawn O. Pearce2007-05-241-2/+14
| | | | | | | | | | | | | | | | | | | | Recently the git-remote command grew an update subcommand, which can be used to execute git-fetch across multiple repositories in a single step. These can be configured with the 'remotes.*' configuration options, so we can offer completion for any name that matches and appears to be useful to git-remote update. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Update bash completion header documentationShawn O. Pearce2007-05-241-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Added a note about supporting the long options for most commands, as we have been doing so for quite some time. 2) Include a notice that these routines are covered by the GPL, as that may not be obvious, even though they are distributed as part of the core Git distribution. 3) Added a short section on how to send patches to the routines, and to whom they should get sent to. Currently that is me, as I am the active maintainer. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Remove a duplicate --not option in bash completionShawn O. Pearce2007-05-241-1/+1
| | | | | | | | | | | | | | | | | | This was just me being silly; I put the --not option into the completion list twice. There's no duplicates shown in the shell as the shell removes them before showing them to the user. But we really don't need the duplicates in the source script either. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Teach bash completion about git-shortlogShawn O. Pearce2007-05-241-0/+23
| | | | | | | | | | | | | | | | | | | | We've had completion for git-log for quite some time, but just today I noticed we don't have it for the new builtin shortlog that runs git-log internally. This is indeed a handy thing to have completion for, especially when your branch names are of the Very-Very-Long-and-Hard/To-Type/Variety/That-Some-Use. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Hide the plumbing diff-{files,index,tree} from bash completionShawn O. Pearce2007-05-241-3/+3
| | | | | | | | | | | | | | | | The diff-* programs are meant to be plumbing for the diff frontend; most end users aren't invoking these commands directly. Consequently we should avoid showing them as possible completions. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * Update bash completion to ignore some more plumbing commandsJonas Fonseca2007-05-211-0/+3
| | | | | | | | | | | | | | | | [sp: Modified Jonas' original patch to keep checkout-index as a a valid completion.] Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | Merge branch 'maint-1.5.1' into maintJunio C Hamano2007-05-242-0/+5
|\ \ | | | | | | | | | | | | | | | * maint-1.5.1: fix memory leak in parse_object when check_sha1_signature fails name-rev: tolerate clock skew in committer dates
| * | fix memory leak in parse_object when check_sha1_signature failsCarlos Rica2007-05-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | When check_sha1_signature fails, program is not terminated: it prints an error message and returns NULL, so the buffer returned by read_sha1_file should be freed before. Signed-off-by: Carlos Rica <jasampler@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | name-rev: tolerate clock skew in committer datesJunio C Hamano2007-05-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In git.git repository, "git-name-rev v1.3.0~158" cannot name the rev, while adjacent revs can be named. This was because it gives up traversal from the tips of existing refs as soon as it sees a commit that has older commit timestamp than what is being named. This is usually a good heuristics, but v1.3.0~158 has a slightly older commit timestamp than v1.3.0~157 (i.e. it's child), as these two were made in a separate repostiory (in fact, in a different continent). This adds a hardcoded slop value (1 day) to the cut-off heuristics to work this kind of problem around. The current algorithm essentially runs around from the available tips down to ancient commits and names every single rev available that are newer than cut-off date, so a single day slop would not add that much overhead in repositories with long enough history where the performance of name-rev matters. I think the algorithm could be made a bit smarter by deepening the graph on demand as a new commit is asked to be named (this would require rewriting of name_rev() function not to recurse itself but use a traversal list like revision.c traverser does), but that would be a separate issue. Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint' of git://repo.or.cz/git/fastimport into maintJunio C Hamano2007-05-232-30/+66
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'maint' of git://repo.or.cz/git/fastimport: Fix possible coredump with fast-import --import-marks Refactor fast-import branch creation from existing commit fast-import: Fix crash when referencing already existing objects fast-import: Fix uninitialized variable
| * | | Fix possible coredump with fast-import --import-marksShawn O. Pearce2007-05-242-5/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When e8438420bb7d368bec3647b90c557b9931582267 allowed us to reload the marks table on subsequent runs of fast-import we really broke things, as we set pack_id to MAX_PACK_ID for any objects we imported into the marks table. Creating a branch from that mark should fail as we attempt to read the object through a non-existant packed_git pointer. Instead we have to use the normal Git object system to locate the older commit, as we ourselves do not have a reference to the packed_git it resides in. This bug only occurred because t9300 was not complete enough. When we added the --import-marks feature we didn't actually test its implementation enough to verify the function worked as intended. I have corrected that, and included the changes as part of this fix. Prior versions of fast-import fail the new test(s); this commit allows them to pass. Credit for this bug find goes to Simon Hausmann <simon@lst.de> as he recently identified a similiar bug in the tree lazy-loading path. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | Refactor fast-import branch creation from existing commitShawn O. Pearce2007-05-241-27/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To resolve a corner case uncovered by Simon Hausmann I need to reuse the logic for the SHA-1 expression version of the 'from ' command within the mark version of the 'from ' command. This change doesn't alter any functionality, but is merely breaking the common code out to a function that I can reuse. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | fast-import: Fix crash when referencing already existing objectsSimon Hausmann2007-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit a5c1780a0355a71b9fb70f1f1977ce726ee5b8d8 sets the pack_id of existing objects to MAX_PACK_ID. When the same object is referenced later again it is found in the local object hash. With such a pack_id fast-import should not try to locate that object in the newly created pack(s). Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | fast-import: Fix uninitialized variableSimon Hausmann2007-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix uninitialized last_object->no_free variable that is accessed in store_object. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | Merge branch 'maint-1.5.1' into maintJunio C Hamano2007-05-231-1/+1
|\ \ \ \ | |/ / / |/| / / | |/ / | | | * maint-1.5.1: Documentation: fix git-config.xml generation
| * | Documentation: fix git-config.xml generationJames Bowes2007-05-231-1/+1
| | | | | | | | | | | | | | | Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Use git-for-each-ref to check whether the origin branch exists.Stephan Springl2007-05-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This works in repositories that have their refs packed by "git-pack-refs --all --prune" whereas testing the file $git_dir/refs/heads/$opt_o does not. Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint-1.5.1' into maintJunio C Hamano2007-05-231-0/+7
|\ \ \ | |/ / | | | | | | | | | * maint-1.5.1: Document branch.autosetupmerge.
| * | Document branch.autosetupmerge.Paolo Bonzini2007-05-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | This patch documents the branch.autosetupmerge config option, added by commit 0746d19a. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-cvsserver: fix disabling service via per-method configJunio C Hamano2007-05-211-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the per-method enable logic disables the access, we should not even look at the global one. git-cvsserver.perl | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint-1.5.1' into maintJunio C Hamano2007-05-216-2/+54
|\ \ \ | |/ / | | | | | | | | | | | | | | | * maint-1.5.1: git-status: respect core.excludesFile SubmittingPatches: mention older C compiler compatibility git-daemon: don't ignore pid-file write failure
| * | git-status: respect core.excludesFileJohannes Schindelin2007-05-214-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git-add reads this variable, and honours the contents of that file if that exists. Match this behaviour in git-status, too. Noticed by Evan Carroll on IRC. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | SubmittingPatches: mention older C compiler compatibilityJohannes Schindelin2007-05-211-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | We do not appreciate C99 initializers, declarations after statements, or "0" instead of "NULL". Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | git-daemon: don't ignore pid-file write failureJim Meyering2007-05-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Note: since the consequence of failure is to call die, I don't bother to close "f". Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint-1.5.1' into maintJunio C Hamano2007-05-206-18/+48
|\ \ \ | |/ / | | / | |/ |/| | | | | | | | | | | * maint-1.5.1: annotate: make it work from subdirectories. git-config: Correct asciidoc documentation for --int/--bool t1300: Add tests for git-config --bool --get unpack-trees.c: verify_uptodate: remove dead code Use PATH_MAX instead of TEMPFILE_PATH_LEN branch: fix segfault when resolving an invalid HEAD
| * annotate: make it work from subdirectories.Junio C Hamano2007-05-201-1/+1
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * git-config: Correct asciidoc documentation for --int/--boolFrank Lichtenheld2007-05-201-8/+9
| | | | | | | | | | | | | | | | | | The asciidoc documentation seemed to indicate that type specifiers are honoured on writing operations which they aren't. Make this more clear. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * t1300: Add tests for git-config --bool --getFrank Lichtenheld2007-05-201-0/+34
| | | | | | | | | | | | | | | | Noticed that there were only tests for --int, but not for --bool. Add some. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * unpack-trees.c: verify_uptodate: remove dead codeSven Verdoolaege2007-05-201-4/+0
| | | | | | | | | | | | | | This code was killed by commit fcc387db9bc453dc7e07a262873481af2ee9e5c8. Signed-off-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Use PATH_MAX instead of TEMPFILE_PATH_LENFernando J. Pereda2007-05-201-4/+2
| | | | | | | | | | Signed-off-by: Fernando J. Pereda <ferdy@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * branch: fix segfault when resolving an invalid HEADJonas Fonseca2007-05-201-1/+2
| | | | | | | | | | | | | | | | Caused by return value of resolve_ref being passed directly to xstrdup whereby the sanity checking was never reached. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | GIT 1.5.2v1.5.2Junio C Hamano2007-05-203-22/+26
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-cvsserver: exit with 1 upon "I HATE YOU"Junio C Hamano2007-05-201-1/+1
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'maint' to synchronize with 1.5.1.6Junio C Hamano2007-05-206-59/+212
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: GIT 1.5.1.6 git-svn: don't minimize-url when doing an init that tracks multiple paths git-svn: avoid crashing svnserve when creating new directories user-manual: Add section on ignoring files user-manual: finding commits referencing given file content user-manual: discourage shared repository tutorial: revise index introduction tutorials: add user-manual links Conflicts: GIT-VERSION-GEN RelNotes
| * GIT 1.5.1.6v1.5.1.6Junio C Hamano2007-05-204-9/+48
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maintJunio C Hamano2007-05-193-52/+159
| |\ | | | | | | | | | | | | | | | | | | | | | | | | * 'maint' of git://linux-nfs.org/~bfields/git: user-manual: Add section on ignoring files user-manual: finding commits referencing given file content user-manual: discourage shared repository tutorial: revise index introduction tutorials: add user-manual links
| | * user-manual: Add section on ignoring filesJohan Herland2007-05-191-2/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The todo list at the end of the user manual says that something must be said about .gitignore. Also, there seems to be a lack of documentation on how to choose between the various types of ignore files (.gitignore vs. .git/info/exclude, etc.). This patch adds a section on ignoring files which try to introduce how to tell git about ignored files, and how the different strategies complement eachother. The syntax of exclude patterns is explained in a simplified manner, with a reference to git-ls-files(1) which already contains a more thorough explanation. Signed-off-by: Johan Herland <johan@herland.net>
| | * user-manual: finding commits referencing given file contentJ. Bruce Fields2007-05-191-0/+16
| | | | | | | | | | | | | | | | | | | | | Another amusing git exploration example brought up in irc. (Credit to aeruder for the complete solution.) Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
| | * user-manual: discourage shared repositoryJ. Bruce Fields2007-05-191-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | I don't really want to look like we're encouraging the shared repository thing. Take down some of the argument for using purely single-developer-owned repositories and collaborating using patches and pulls instead. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
| | * tutorial: revise index introductionJ. Bruce Fields2007-05-191-49/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The embarassing history of this tutorial is that I started it without really understanding the index well, so I avoided mentioning it. And we all got the idea that "index" was a word to avoid using around newbies, but it was reluctantly mentioned that *something* had to be said. The result is a little awkward: the discussion of the index never actually uses that word, and isn't well-integrated into the surrounding material. Let's just go ahead and use the word "index" from the very start, and try to demonstrate its use with a minimum of lecturing. Also, remove discussion of using git-commit with explicit filenames. We're already a bit slow here to get people to their first commit, and I'm not convinced this is really so important. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
| | * tutorials: add user-manual linksJ. Bruce Fields2007-05-192-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Mention the user manual, especially as an alternative introduction for user's mainly interested in read-only operations. And fix a typo while we're there. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
| * | git-svn: don't minimize-url when doing an init that tracks multiple pathsEric Wong2007-05-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I didn't have a chance to test the off-by-default minimize-url stuff enough before, but it's quite broken for people passing the --trunk/-T, --tags/-t, --branches/-b switches to "init" or "clone" commands. Additionally, follow-parent functionality seems broken when we're not connected to the root of the repository. Default behavior for "traditional" git-svn users who only track one directory (without needing follow-parent) should be reasonable, as those users started using things before minimize-url functionality existed. Behavior for users more used to the git-svnimport-like command line will also benefit from a more-flexible command-line than svnimport given the assumption they're working with non-restrictive read permissions on the repository. I hope to properly fix these bugs when I get a chance to in the next week or so, but I would like to get this stopgap measure of reverting to the old behavior as soon as possible. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | git-svn: avoid crashing svnserve when creating new directoriesEric Wong2007-05-191-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When sorting directory names by depth (slash ("/") count) and closing the deepest directories first (as the protocol requires), we failed to put the root baton (with an empty string as its key "") after top-level directories (which did not have any slashes). This resulted in svnserve being in a situation it couldn't handle and caused a segmentation fault on the remote server. This bug did not affect users of DAV and filesystem repositories. Signed-off-by: Eric Wong <normalperson@yhbt.net> Confirmed-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'maint'Junio C Hamano2007-05-1811-10/+24
|\ \ | |/ | | | | | | | | * maint: Documentation: Reformatted SYNOPSIS for several commands Documentation: Added [verse] to SYNOPSIS where necessary
| * Documentation: Reformatted SYNOPSIS for several commandsMatthias Kestenholz2007-05-186-9/+19
| | | | | | | | | | Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Documentation: Added [verse] to SYNOPSIS where necessaryMatthias Kestenholz2007-05-185-1/+5
| | | | | | | | | | Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch> Signed-off-by: Junio C Hamano <junkio@cox.net>