summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-04-22Update draft release notes for v1.5.2Libravatar Junio C Hamano1-26/+51
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Documentation/Makefile: fix section (5) installationLibravatar Junio C Hamano2-2/+2
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21Update documentation links to point at v1.5.1.2Libravatar Junio C Hamano1-1/+5
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21Merge branch 'lt/objalloc'Libravatar Junio C Hamano8-59/+43
* 'lt/objalloc': Clean up object creation to use more common code Use proper object allocators for unknown object nodes too
2007-04-21Merge branch 'jc/add'Libravatar Junio C Hamano1-1/+57
* jc/add: git-add -u: match the index with working tree.
2007-04-21Merge branch 'jc/attr'Libravatar Junio C Hamano22-134/+1816
* 'jc/attr': (28 commits) lockfile: record the primary process. convert.c: restructure the attribute checking part. Fix bogus linked-list management for user defined merge drivers. Simplify calling of CR/LF conversion routines Document gitattributes(5) Update 'crlf' attribute semantics. Documentation: support manual section (5) - file formats. Simplify code to find recursive merge driver. Counto-fix in merge-recursive Fix funny types used in attribute value representation Allow low-level driver to specify different behaviour during internal merge. Custom low-level merge driver: change the configuration scheme. Allow the default low-level merge driver to be configured. Custom low-level merge driver support. Add a demonstration/test of customized merge. Allow specifying specialized merge-backend per path. merge-recursive: separate out xdl_merge() interface. Allow more than true/false to attributes. Document git-check-attr Change attribute negation marker from '!' to '-'. ...
2007-04-21Merge branch 'lt/gitlink'Libravatar Junio C Hamano18-120/+639
* lt/gitlink: Tests for core subproject support Expose subprojects as special files to "git diff" machinery Fix some "git ls-files -o" fallout from gitlinks Teach "git-read-tree -u" to check out submodules as a directory Teach git list-objects logic to not follow gitlinks Fix gitlink index entry filesystem matching Teach "git-read-tree -u" to check out submodules as a directory Teach git list-objects logic not to follow gitlinks Don't show gitlink directories when we want "other" files Teach git-update-index about gitlinks Teach directory traversal about subprojects Fix thinko in subproject entry sorting Teach core object handling functions about gitlinks Teach "fsck" not to follow subproject links Add "S_IFDIRLNK" file mode infrastructure for git links Add 'resolve_gitlink_ref()' helper function Avoid overflowing name buffer in deep directory structures diff-lib: use ce_mode_from_stat() rather than messing with modes manually
2007-04-21Merge branch 'np/pack'Libravatar Junio C Hamano21-498/+1010
* np/pack: (27 commits) document --index-version for index-pack and pack-objects pack-objects: remove obsolete comments pack-objects: better check_object() performances add get_size_from_delta() pack-objects: make in_pack_header_size a variable of its own pack-objects: get rid of create_final_object_list() pack-objects: get rid of reuse_cached_pack pack-objects: clean up list sorting pack-objects: rework check_delta_limit usage pack-objects: equal objects in size should delta against newer objects pack-objects: optimize preferred base handling a bit clean up add_object_entry() tests for various pack index features use test-genrandom in tests instead of /dev/urandom simple random data generator for tests validate reused pack data with CRC when possible allow forcing index v2 and 64-bit offset treshold pack-redundant.c: learn about index v2 show-index.c: learn about index v2 sha1_file.c: learn about index version 2 ...
2007-04-21Merge branch 'jp/refs'Libravatar Junio C Hamano1-21/+89
* jp/refs: refs.c: add a function to sort a ref list, rather then sorting on add
2007-04-21Merge branch 'jc/quickfetch'Libravatar Junio C Hamano4-13/+206
* jc/quickfetch: Make sure quickfetch is not fooled with a previous, incomplete fetch. git-fetch: use fetch--tool pick-rref to avoid local fetch from alternate git-fetch--tool pick-rref
2007-04-21Merge branch 'maint'Libravatar Junio C Hamano4-10/+23
* maint: GIT 1.5.1.2 perl: install private Error.pm if the site version is older than our own git-clone: fix dumb protocol transport to clone from pack-pruned ref
2007-04-21GIT 1.5.1.2Libravatar Junio C Hamano2-8/+21
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21perl: install private Error.pm if the site version is older than our ownLibravatar Eric Wong1-1/+1
bdash (on IRC) had a problem with Git.pm (via git-svn) when his site installation of Error.pm was older than the version we package. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21lockfile: record the primary process.Libravatar Junio C Hamano2-1/+6
The usual process flow is the main process opens and holds the lock to the index, does its thing, perhaps spawning children during the course, and then writes the resulting index out by releaseing the lock. However, the lockfile interface uses atexit(3) to clean it up, without regard to who actually created the lock. This typically leads to a confusing behaviour of lock being released too early when the child exits, and then the parent process when it calls commit_lockfile() finds that it cannot unlock it. This fixes the problem by recording who created and holds the lock, and upon atexit(3) handler, child simply ignores the lockfile the parent created. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21convert.c: restructure the attribute checking part.Libravatar Junio C Hamano1-20/+28
This separates the checkattr() call and interpretation of the returned value specific to the 'crlf' attribute into separate routines, so that we can run a single call to checkattr() to check for more than one attributes, and then interprete what the returned settings mean separately. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21Fix bogus linked-list management for user defined merge drivers.Libravatar Junio C Hamano1-1/+2
ll_user_merge_tail is supposed to point at the pointer to be updated to point at a newly created item. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20Simplify calling of CR/LF conversion routinesLibravatar Alex Riesen6-60/+51
Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20Fix a copy-n-paste bug in the object decorator code.Libravatar Linus Torvalds1-1/+0
Duh. When I did the object decorator thing, I made the "loop over the hash" function use the same logic for updating the hash, ie made them use if (++j >= size) j = 0; for both the hash update for both "insert" and "lookup" HOWEVER. For some inexplicable reason I had an extraneous j++; in the insert path (probably just from the fact that the old code there used j++; if (j >= size) j = 0; and when I made them use the same logic I just didn't remove the old extraneous line properly. This fixes it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20git-clone: fix dumb protocol transport to clone from pack-pruned refLibravatar Junio C Hamano1-1/+1
This forward-ports a fix from 2986c022 to git-clone. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20git-add -u: match the index with working tree.Libravatar Junio C Hamano1-1/+57
This is a shorthand of what "git commit -a" does in preparation for making a commit, which is: git diff-files --name-only -z | git update-index --remove -z --stdin Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20gitview: annotation supportLibravatar Aneesh Kumar K.V1-4/+256
List files modifed as a part of the commit in the diff window Support annotation of the file listed in the diff window Support history browsing in the annotation window. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-20Kill the useless progress meter in merge-recursiveLibravatar Shawn O. Pearce1-62/+3
The mess known as the progress meter in merge-recursive was my own fault; I put it in thinking that we might be spending a lot of time resolving unmerged entries in the index that were not handled by the simple 3-way index merge code. Turns out we don't really spend that much time there, so the progress meter was pretty much always jumping to "(n/n) 100%" as soon as the program started. That isn't a very good indication of progress. Since I don't have a great solution for how a progress meter should work here, I'm proposing we back it out entirely. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Remove case-sensitive file in t3030-merge-recursive.Libravatar Brian Gernhardt1-52/+52
Rename "A" to the unused "c" Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19git.el: Add a commit description to the reflog.Libravatar Alexandre Julliard1-14/+28
Add a description of the commit to the reflog using the first line of the log message, the same way the git-commit script does it. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Contribute a fairly paranoid update hookLibravatar Shawn O. Pearce1-0/+284
I'm using a variant of this update hook in a corporate environment where we perform some validations of the commits and tags that are being pushed. The model is a "central repository" type setup, where users are given access to push to specific branches within the shared central repository. In this particular installation we run a specially patched git-receive-pack in setuid mode via SSH, allowing all writes into the repository as the repository owner, but only if this hook blesses it. One of the major checks we perform with this hook is that the 'committer' line of a commit, or the 'tagger' line of a new annotated tag actually correlates to the UNIX user who is performing the push. Users can falsify these lines on their local repositories, but the central repository that management trusts will reject all such forgery attempts. Of course 'author' lines are still allowed to be any value, as sometimes changes do come from other individuals. Another nice feature of this hook is the access control lists for all repositories on the system can also be stored and tracked in a supporting Git repository, which can also be access controlled by itself. This allows full auditing of who-had-what-when-and-why, thanks to git-blame's data mining capabilities. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Merge branch 'maint'Libravatar Junio C Hamano5-14/+21
* maint: Update git-config documentation Fix unmatched emphasis tag in git-tutorial Update git-cherry-pick documentation Update git-archive documentation
2007-04-19Fix working directory errno handling when unlinking a directoryLibravatar Linus Torvalds1-25/+29
Alex Riesen noticed that the case where a file replaced a directory entry in the working tree was broken on cygwin. It turns out that the code made some Linux-specific assumptions, and also ignored errors entirely for the case where the entry was a symlink rather than a file. This cleans it up by separating out the common case into a function of its own, so that both regular files and symlinks can share it, and by making the error handling more obvious (and not depend on any Linux-specific behaviour). Acked-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Document gitattributes(5)Libravatar Junio C Hamano3-2/+300
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Update 'crlf' attribute semantics.Libravatar Junio C Hamano2-60/+89
This updates the semantics of 'crlf' so that .gitattributes file can say "this is text, even though it may look funny". Setting the `crlf` attribute on a path is meant to mark the path as a "text" file. 'core.autocrlf' conversion takes place without guessing the content type by inspection. Unsetting the `crlf` attribute on a path is meant to mark the path as a "binary" file. The path never goes through line endings conversion upon checkin/checkout. Unspecified `crlf` attribute tells git to apply the `core.autocrlf` conversion when the file content looks like text. Setting the `crlf` attribut to string value "input" is similar to setting the attribute to `true`, but also forces git to act as if `core.autocrlf` is set to `input` for the path. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19Documentation: support manual section (5) - file formats.Libravatar Junio C Hamano2-7/+15
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19document --index-version for index-pack and pack-objectsLibravatar Nicolas Pitre2-0/+10
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-19pack-objects: remove obsolete commentsLibravatar Nicolas Pitre1-11/+3
The sorted-by-sha ans sorted-by-type arrays are no more. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Update git-config documentationLibravatar Andrew Ruder2-11/+15
Documentation/git-config.txt: Added documentation for --system Documentation/builtin-config.c: Added --system to the short usage Signed-off-by: Andrew Ruder <andy@aeruder.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Fix unmatched emphasis tag in git-tutorialLibravatar Andrew Ruder1-1/+1
In asciidoc 7.1.2 and prior there is no obvious way to get: 'add'ing to emphasize only the "add", instead it treats the first apostrophe as the beginning of an emphasis, and the second apostrophe as a regular apostrophe and makes the rest of the line an emphasis since there is no closing apostrophe. In the newer asciidoc you can do it pretty easily with __add__ing but I'm not sure it would be best to make that a prereq for something as silly as this. Signed-off-by: Andrew Ruder <andy@aeruder.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Update git-cherry-pick documentationLibravatar Andrew Ruder1-1/+1
Documentation/git-cherry-pick.txt: Remove --replay as it is not handled by the code (-r is however). Signed-off-by: Andrew Ruder <andy@aeruder.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Update git-archive documentationLibravatar Andrew Ruder1-1/+4
Documentation/git-archive.txt: Document -v/--verbose option. Add -l as short form of --list. Signed-off-by: Andrew Ruder <andy@aeruder.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Merge branch 'maint'Libravatar Junio C Hamano3-3/+3
* maint: fix up strtoul_ui error handling git-tar-tree: complete deprecation conversion message
2007-04-18fix up strtoul_ui error handlingLibravatar Andy Whitcroft2-2/+2
Two scanf() calls were converted to strtoul_ui() but the return values were not updated to match. scanf() returns the number of matched "values" which for this usage is 1 on success. strtoul_ui() return 0 on success. Update these call sites to match. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Simplify code to find recursive merge driver.Libravatar Junio C Hamano1-7/+2
There is no need to intern the string to git_attr, as we are already dealing with the name of the driver there. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Counto-fix in merge-recursiveLibravatar Junio C Hamano1-1/+4
When the configuration has variables unrelated to low-level merge drivers (e.g. merge.summary), the code failed to ignore them but did something totally senseless. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18git-tar-tree: complete deprecation conversion messageLibravatar Sam Vilain1-1/+1
The syntax for git-archive is different; warn about it in the deprecation message on the manual page. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Tests for core subproject supportLibravatar Alex Riesen1-0/+85
The following tests available: - create subprojects: create a directory in the superproject, initialize a git repo in it, and try adding it in super project. Make a commit in superproject - check if fsck ignores the subprojects: it just should give no errors - check if commit in a subproject detected: make a commit in subproject, git-diff-files in superproject should detect it - check if a changed subproject HEAD can be committed: try "git-commit -a" in superproject. It should commit changed HEAD of a subproject - check if diff-index works for subproject elements: compare the index (changed by previuos tests) with the initial commit (which created two subprojects). Should show a change for the recently changed subproject - check if diff-tree works for subproject elements: do the same, just use git-diff-tree. This test is somewhat redundant, I just added it for completeness (diff, diff-files, and diff-index are already used) - check if git diff works for subproject elements: try to limit the diff for the name of a subproject in superproject: git diff HEAD^ HEAD -- subproject - check if clone works: try a clone of superproject and compare "git ls-files -s" output in superproject and cloned repo - removing and adding subproject: rename test. Currently implemented as "git-update-index --force-remove", "mv" and "git-add". - checkout in superproject: try to checkout the initial commit Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18refs.c: add a function to sort a ref list, rather then sorting on addLibravatar Julian Phillips1-21/+89
Rather than sorting the refs list while building it, sort in one go after it is built using a merge sort. This has a large performance boost with large numbers of refs. It shouldn't happen that we read duplicate entries into the same list, but just in case sort_ref_list drops them if the SHA1s are the same, or dies, as we have no way of knowing which one is the correct one. Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Merge branch 'maint'Libravatar Junio C Hamano5-3/+43
* maint: git-shortlog: Fix two formatting errors in asciidoc documentation Fix overwriting of files when applying contextually independent diffs git-svn: don't allow globs to match regular files
2007-04-18Fix funny types used in attribute value representationLibravatar Junio C Hamano6-26/+43
It was bothering me a lot that I abused small integer values casted to (void *) to represent non string values in gitattributes. This corrects it by making the type of attribute values (const char *), and using the address of a few statically allocated character buffer to denote true/false. Unset attributes are represented as having NULLs as their values. Added in-header documentation to explain how git_checkattr() routine should be called. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18git-shortlog: Fix two formatting errors in asciidoc documentationLibravatar Frank Lichtenheld1-1/+3
First use [verse] in the SYNOPSIS so that the line break actually shows. Secondly drop the quotes around '.mailmap' since this exposes a bug in our toolchain (didn't bother enough yet to find out wether it is asciidoc's fault or that of the XSL templates) that leads to the dot not getting escaped correctly in the roff output and thereby swallowing the line. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Fix overwriting of files when applying contextually independent diffsLibravatar Alex Riesen2-2/+34
Noticed by applying two diffs of different contexts to the same file. The check for existence of a file was wrong: the test assumed it was a directory and reset the errno (twice: directly and by calling lstat). So if an entry existed and was _not_ a directory no attempt was made to rename into it, because the errno (expected by renaming code) was already reset to 0. This resulted in error: fatal: unable to write file file mode 100644 For Linux, removing "errno = 0" is enough, as lstat wont modify errno if it was successful. The behavior should not be depended upon, though, so modify the "if" as well. The test simulates this situation. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18git-svn: don't allow globs to match regular filesLibravatar Eric Wong2-0/+6
git only tracks the histories of full directories, not that of individual files. Sometimes, SVN users will place[1] a regular file in the directory designated for subdirectories of branches or tags. Thanks to jrockway on #git for pointing this out. [1] mistakenly or otherwise, such as a README Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Allow low-level driver to specify different behaviour during internal merge.Libravatar Junio C Hamano1-0/+12
This allows [merge "drivername"] to have a variable "recursive" that names a different low-level merge driver to be used when merging common ancestors to come up with a virtual ancestor. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-18Custom low-level merge driver: change the configuration scheme.Libravatar Junio C Hamano2-79/+131
This changes the configuration syntax for defining a low-level merge driver to be: [merge "<<drivername>>"] driver = "<<command line>>" name = "<<driver description>>" which is much nicer to read and is extensible. Credit goes to Martin Waitz and Linus. In addition, when we use an external low-level merge driver, it is reported as an extra output from merge-recursive, using the value of merge.<<drivername>.name variable. The demonstration in t6026 has also been updated. Signed-off-by: Junio C Hamano <junkio@cox.net>