summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-04-22common progress display supportLibravatar Nicolas Pitre7-185/+154
Instead of having this code duplicated in multiple places, let's have a common interface for progress display. If someday someone wishes to display a cheezy progress bar instead then only one file will have to be changed. Note: I left merge-recursive.c out since it has a strange notion of progress as it apparently increase the expected total number as it goes. Someone with more intimate knowledge of what that is supposed to mean might look at converting it to the common progress interface. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Support 'diff=pgm' attributeLibravatar Junio C Hamano5-5/+182
This enhances the attributes mechanism so that external programs meant for existing GIT_EXTERNAL_DIFF interface can be specifed per path. To configure such a custom diff driver, first define a custom diff driver in the configuration: [diff "my-c-diff"] command = <<your command string comes here>> Then mark the paths that you want to use this custom driver using the attribute mechanism. *.c diff=my-c-diff The intent of this separation is that the attribute mechanism is used for specifying the type of the contents, while the configuration mechanism is used to define what needs to be done to that type of the contents, which would be specific to both platform and personal taste. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22pack-objects: make generated packfile read-onlyLibravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Update tests not to assume that generated packfiles are writable.Libravatar Junio C Hamano1-11/+11
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Fix 'quickfix' on pack-objects.Libravatar Junio C Hamano1-2/+14
The earlier quickfix forced world-readable permission bits. This updates it to honor umask and core.sharedrepository settings. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22pack-objects: quickfix for permission modes.Libravatar Junio C Hamano1-0/+6
mkstemp() often creates the file in 0600 which means the resulting packfile is not readable by anybody other than the repository owner. Force 0644 for now, even though this is not strictly correct. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Fix crash in t0020 (crlf conversion)Libravatar Alex Riesen1-2/+4
Reallocated wrong size. Noticed on Ubuntu 7.04 probably because it has some malloc diagnostics in libc: "git-read-tree --reset -u HEAD" aborted in the test. Valgrind sped up the debugging greatly: took me 10 minutes. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Fix a typo in crlf conversion codeLibravatar Alex Riesen1-5/+5
Also, noticed by valgrind: the code caused a read out-of-bounds. Some comments updated as well (they still reflected old calling conventions). Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-22Cleanup variables in cat-fileLibravatar Shawn O. Pearce1-12/+18
I want to add new command line options to cat-file, but to do that we need to change how we handle argv[] first. This is a simple cleanup that assigns names to the two arguments we currently care about. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
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>