summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2006-04-26Merge branch 'jc/cache-tree' into nextLibravatar Junio C Hamano1-1/+1
* jc/cache-tree: commit-tree: allow generic object name for the tree as well. Makefile: remove and create xdiff library from scratch. t0000-basic: Add ls-tree recursive test back.
2006-04-26Merge branch 'master' into jc/cache-treeLibravatar Junio C Hamano1-3/+3
* master: commit-tree: allow generic object name for the tree as well. Makefile: remove and create xdiff library from scratch. t0000-basic: Add ls-tree recursive test back. Libified diff-index: backward compatibility fix. Libify diff-index. Libify diff-files. Makefile: remove and create libgit.a from scratch. Document the configuration file Document git-var -l listing also configuration variables rev-parse: better error message for ambiguous arguments make update-index --chmod work with multiple files and --stdin socksetup: don't return on set_reuse_addr() error Fix "git show --stat" git-update-index --unresolve Add git-unresolve <paths>... Add colordiff for git to contrib/colordiff. gitk: Let git-rev-list do the argument list parsing
2006-04-26Makefile: remove and create xdiff library from scratch.Libravatar Junio C Hamano1-1/+1
... in the same spirit as 71459c193d04870076efa0a387c317390b53e3e2. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-25Merge branch 'jc/diffstat' into nextLibravatar Junio C Hamano1-1/+1
* jc/diffstat: diff --stat: show complete rewrites consistently. Makefile: remove and create libgit.a from scratch.
2006-04-25Merge branch 'jc/diff'Libravatar Junio C Hamano1-1/+1
* jc/diff: Libified diff-index: backward compatibility fix. Libify diff-index. Libify diff-files.
2006-04-25Makefile: remove and create libgit.a from scratch.Libravatar Junio C Hamano1-1/+1
Foolishly I renamed diff.o around which caused an old diff.o taken out of libgit.a and got linked into resulting binary and exhibited mysterious breakage for many people. This borrows from the kernel Makefile (scripts/Makefile.build) to first remove the target and then recreate. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-24Merge branch 'jc/cache-tree' into nextLibravatar Junio C Hamano1-0/+3
* jc/cache-tree: index: make the index file format extensible. cache-tree: protect against "git prune". Add test-dump-cache-tree
2006-04-24Merge part of 'jc/cache-tree'Libravatar Junio C Hamano1-1/+1
2006-04-24Add test-dump-cache-treeLibravatar Junio C Hamano1-0/+3
This was useful in diagnosing the corrupt index.aux format problem. But do not bother building or installing it by default. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23Add cache-tree.Libravatar Junio C Hamano1-1/+1
The cache_tree data structure is to cache tree object names that would result from the current index file. The idea is to have an optional file to record each tree object name that corresponds to a directory path in the cache when we run write_cache(), and read it back when we run read_cache(). During various index manupulations, we selectively invalidate the parts so that the next write-tree can bypass regenerating tree objects for unchanged parts of the directory hierarchy. We could perhaps make the cache-tree data an optional part of the index file, but that would involve the index format updates, so unless we need it for performance reasons, the current plan is to use a separate file, $GIT_DIR/index.aux to store this information and link it with the index file with the checksum that is already used for index file integrity check. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-22Merge branch 'jc/diff' into nextLibravatar Junio C Hamano1-1/+1
* jc/diff: Libify diff-index. Libify diff-files.
2006-04-22Libify diff-files.Libravatar Junio C Hamano1-1/+1
This is the first installment to libify diff brothers. The updated diff-files uses revision.c::setup_revisions() infrastructure to parse its command line arguments, which means the pathname arguments are checked more strictly than before. The tests are adjusted to separate possibly missing paths from the rest of arguments with double-dashes, to show the kosher way. As Linus pointed out, renaming diff.c to diff-lib.c was simply stupid, so I am renaming it back. The new diff-lib.c is to contain pieces extracted from diff brothers. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21Merge branch 'jc/color' into nextLibravatar Junio C Hamano1-0/+2
* jc/color: Add colordiff for git to contrib/colordiff. Makefile: dependency for builtin-help.o
2006-04-21Makefile: dependency for builtin-help.oLibravatar Junio C Hamano1-0/+2
builtin-help.c wants to include common-cmds.h which is a generated file. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21Merge branch 'jc/fmt-patch' into nextLibravatar Junio C Hamano1-3/+6
* jc/fmt-patch: Split up builtin commands into separate files from git.c git-log produces no output
2006-04-21Split up builtin commands into separate files from git.cLibravatar Linus Torvalds1-3/+6
Right now it split it into "builtin-log.c" for log-related commands ("log", "show" and "whatchanged"), and "builtin-help.c" for the informational commands (usage printing and "help" and "version"). This just makes things easier to read, I find. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-19Merge branch 'jc/unresolve' into nextLibravatar Junio C Hamano1-2/+1
* jc/unresolve: git-update-index --unresolve
2006-04-19git-update-index --unresolveLibravatar Junio C Hamano1-2/+1
Retire git-unresolve and make it into "git-update-index --unresolve". It processes all paths that follow. During a merge, you would mark a path that is dealt with with: $ git update-index hello and you would "undo" it with: $ git update-index --unresolve hello Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-19Merge branch 'jc/unresolve' into nextLibravatar Junio C Hamano1-2/+3
* jc/unresolve: Add git-unresolve <paths>... get_tree_entry(): make it available from tree-walk sha1_name.c: no need to include diff.h; tree-walk.h will do. sha1_name.c: prepare to make get_tree_entry() reusable from others. pre-commit hook: complain about conflict markers. git-merge: a bit more readable user guidance. diff: move diff.c to diff-lib.c to make room. git log: don't do merge diffs by default Allow "git repack" users to specify repacking window/depth
2006-04-19Add git-unresolve <paths>...Libravatar Junio C Hamano1-1/+2
This is an attempt to address the issue raised on #git channel recently by Carl Worth. After a conflicted automerge, "git diff" shows a combined diff to give you how the tentative automerge result differs from what came from each branch. During a complex merge, it is tempting to be able to resolve a few paths at a time, mark them "I've dealt with them" with git-update-index to unclutter the next "git diff" output, and keep going. However, when the final result does not compile or otherwise found to be a mismerge, the workflow to fix the mismerged paths suddenly changes to "git diff HEAD -- path" (to get a diff from our HEAD before merging) and "git diff MERGE_HEAD -- path" (to get a diff from theirs), and it cannot show the combined anymore. With git-unresolve <paths>..., the versions from our branch and their branch for specified blobs are placed in stage #2 and stage #3, without touching the working tree files. This gives you the combined diff back for easier review, along with "diff --ours" and "diff --theirs". One thing it does not do is to place the base in stage #1; this means "diff --base" would behave differently between the run immediately after a conflicted three-way merge, and the run after an update-index by mistake followed by a git-unresolve. We could theoretically run merge-base between HEAD and MERGE_HEAD to find which tree to place in stage #1, but reviewing "diff --base" is not that useful so.... Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-19diff: move diff.c to diff-lib.c to make room.Libravatar Junio C Hamano1-1/+1
Now I am not doing any real "git-diff in C" yet, but this would help before doing so. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Merge branch 'master' into nextLibravatar Junio C Hamano1-1/+0
* master: GIT 1.3.0 Add git-annotate(1) and git-blame(1) diff --stat: make sure to set recursive. git-svnimport symlink support
2006-04-18Add git-annotate(1) and git-blame(1)Libravatar Jonas Fonseca1-1/+0
[jc: with entries in git.txt] Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge branch 'jc/boundary' into nextLibravatar Junio C Hamano1-1/+1
* jc/boundary: rev-list --boundary: show boundary commits even when limited otherwise. Makefile fixups. gitk: Fix bug caused by missing commitlisted elements
2006-04-16Makefile fixups.Libravatar A Large Angry SCM1-1/+1
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-15Clean-up Geert's similarity fingerprint code.Libravatar Junio C Hamano1-0/+4
This splits Geert's similarity fingerprint code into main program and fingerprinting function. The next step would be to try using this in pack-objects.c::try_delta() -- which would be a good evaluation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-13Makefile: $(MAKE) check-docsLibravatar Junio C Hamano1-0/+20
This target lists undocumented commands, and/or whose document is not referenced from the main git documentation. For now, there are some exceptions I added primarily because I lack the energy to document them myself: - merge backends (we should really document them) - ssh-push/ssh-pull (does anybody still use them?) - annotate and blame (maybe after one of them eats the other ;-) Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-11Merge branch 'ds/index' into nextLibravatar Junio C Hamano1-2/+7
* ds/index: Replace index() with strchr(). Solaris 9 also wants our own unsetenv/setenv. Retire git-log.sh (take #3)
2006-04-11Solaris 9 also wants our own unsetenv/setenv.Libravatar Dennis Stosberg1-0/+4
[jc: the original had "index() is evil" but that should be a separate patch.]
2006-04-11Retire git-log.sh (take #3)Libravatar Junio C Hamano1-2/+3
Do not install built-in commands as separate files -- use hardlinks instead. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-10Merge branch 'jc/withraw' into nextLibravatar Junio C Hamano1-3/+8
* jc/withraw: diff-* --patch-with-raw Retire git-log.sh (take#2) Retire git-log.sh Retire diffcore-pathspec. Improve the git-diff-tree -c/-cc documentation
2006-04-10Retire git-log.sh (take#2)Libravatar Junio C Hamano1-3/+3
... and install a replacement properly. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-10Retire git-log.shLibravatar Junio C Hamano1-3/+8
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-10Retire diffcore-pathspec.Libravatar Junio C Hamano1-1/+1
Nobody except diff-stages used it -- the callers instead filtered the input to diffcore themselves. Make diff-stages do that as well and retire diffcore-pathspec. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-09log-tree: separate major part of diff-tree.Libravatar Junio C Hamano1-2/+2
This separates out the part that deals with one-commit diff-tree (and --stdin form) into a separate log-tree module. There are two goals with this. The more important one is to be able to make this part available to "git log --diff", so that we can have a native "git whatchanged" command. Another is to simplify the commit log generation part simpler. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-05Merge branch 'nh/http' into nextLibravatar Junio C Hamano1-1/+3
* nh/http: Fix compile with expat, but an old curl version
2006-04-05Fix compile with expat, but an old curl versionLibravatar Johannes Schindelin1-1/+3
With an old curl version, git-http-push is not compiled. But git-http-fetch still needs to be linked with expat if NO_EXPAT is not defined. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-05Merge branches 'master' and 'jc/combine' into nextLibravatar Junio C Hamano1-2/+2
* master: Add git-clean command diff_flush(): leakfix. parse_date(): fix parsing 03/10/2006 * jc/combine: combine-diff: refactor built-in xdiff interface.
2006-04-05Add git-clean commandLibravatar Pavel Roskin1-1/+1
This command removes untracked files from the working tree. This implementation is based on cg-clean with some simplifications. The documentation is included. [jc: with trivial documentation fix, noticed by Jakub Narebski] Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-05combine-diff: refactor built-in xdiff interface.Libravatar Junio C Hamano1-1/+1
This refactors the line-by-line callback mechanism used in combine-diff so that other programs can reuse it more easily. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-04http-fetch: add optional DAV-based pack listLibravatar Nick Hengeveld1-1/+6
If git is not built with NO_EXPAT, this patch changes git-http-fetch to attempt using DAV to get a list of remote packs and fall back to using objects/info/packs if the DAV request fails. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-04Set HTTP user agent to git/GIT_VERSIONLibravatar Nick Hengeveld1-0/+3
Useful for diagnostics/troubleshooting to know which client versions are hitting your server. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-31Makefile: many programs now depend on xdiff/lib.a having been built.Libravatar Junio C Hamano1-4/+4
The dependency was not properly updated when we added this library, breaking parallel build with $(MAKE) -j. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-29tree/diff header cleanup.Libravatar Junio C Hamano1-2/+3
Introduce tree-walk.[ch] and move "struct tree_desc" and associated functions from various places. Rename DIFF_FILE_CANON_MODE(mode) macro to canon_mode(mode) and move it to cache.h. This macro returns the canonicalized st_mode value in the host byte order for files, symlinks and directories -- to be compared with a tree_desc entry. create_ce_mode(mode) in cache.h is similar but is intended to be used for index entries (so it does not work for directories) and returns the value in the network byte order. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-27Add ALL_LDFLAGS to the git target.Libravatar Jason Riedy1-1/+2
For some reason, I need ALL_LDFLAGS in the git target only on AIX. Once it builds, only one test "fails" on AIX 5.1 with 1.3.0.rc1, t5500-fetch-pack.sh, but it looks like it's some odd tool problem in the tester + my setup and not a real bug. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-26Merge branch 'lt/diffgen' into nextLibravatar Junio C Hamano1-4/+5
* lt/diffgen: add clean and ignore rules for xdiff/ Remove dependency on a file named "-lz"
2006-03-26add clean and ignore rules for xdiff/Libravatar Junio C Hamano1-1/+2
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-26Remove dependency on a file named "-lz"Libravatar Johannes Schindelin1-3/+3
By changing the dependency "$(LIB_H)" to "$(LIBS)", at least one version of make thought that a file named "-lz" would be needed. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-25Merge branch 'lt/diffgen' into nextLibravatar Junio C Hamano1-2/+9
* lt/diffgen: built-in diff: minimum tweaks builtin-diff: \No newline at end of file. Use a *real* built-in diff generator
2006-03-25Use a *real* built-in diff generatorLibravatar Linus Torvalds1-2/+9
This uses a simplified libxdiff setup to generate unified diffs _without_ doing fork/execve of GNU "diff". This has several huge advantages, for example: Before: [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null real 0m24.818s user 0m13.332s sys 0m8.664s After: [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null real 0m4.563s user 0m2.944s sys 0m1.580s and the fact that this should be a lot more portable (ie we can ignore all the issues with doing fork/execve under Windows). Perhaps even more importantly, this allows us to do diffs without actually ever writing out the git file contents to a temporary file (and without any of the shell quoting issues on filenames etc etc). NOTE! THIS PATCH DOES NOT DO THAT OPTIMIZATION YET! I was lazy, and the current "diff-core" code actually will always write the temp-files, because it used to be something that you simply had to do. So this current one actually writes a temp-file like before, and then reads it into memory again just to do the diff. Stupid. But if this basic infrastructure is accepted, we can start switching over diff-core to not write temp-files, which should speed things up even further, especially when doing big tree-to-tree diffs. Now, in the interest of full disclosure, I should also point out a few downsides: - the libxdiff algorithm is different, and I bet GNU diff has gotten a lot more testing. And the thing is, generating a diff is not an exact science - you can get two different diffs (and you will), and they can both be perfectly valid. So it's not possible to "validate" the libxdiff output by just comparing it against GNU diff. - GNU diff does some nice eye-candy, like trying to figure out what the last function was, and adding that information to the "@@ .." line. libxdiff doesn't do that. - The libxdiff thing has some known deficiencies. In particular, it gets the "\No newline at end of file" case wrong. So this is currently for the experimental branch only. I hope Davide will help fix it. That said, I think the huge performance advantage, and the fact that it integrates better is definitely worth it. But it should go into a development branch at least due to the missing newline issue. Technical note: this is based on libxdiff-0.17, but I did some surgery to get rid of the extraneous fat - stuff that git doesn't need, and seriously cutting down on mmfile_t, which had much more capabilities than the diff algorithm either needed or used. In this version, "mmfile_t" is just a trivial <pointer,length> tuple. That said, I tried to keep the differences to simple removals, so that you can do a diff between this and the libxdiff origin, and you'll basically see just things getting deleted. Even the mmfile_t simplifications are left in a state where the diffs should be readable. Apologies to Davide, whom I'd love to get feedback on this all from (I wrote my own "fill_mmfile()" for the new simpler mmfile_t format: the old complex format had a helper function for that, but I did my surgery with the goal in mind that eventually we _should_ just do mmfile_t mf; buf = read_sha1_file(sha1, type, &size); mf->ptr = buf; mf->size = size; .. use "mf" directly .. which was really a nightmare with the old "helpful" mmfile_t, and really is that easy with the new cut-down interfaces). [ Btw, as any hawk-eye can see from the diff, this was actually generated with itself, so it is "self-hosting". That's about all the testing it has gotten, along with the above kernel diff, which eye-balls correctly, but shows the newline issue when you double-check it with "git-apply" ] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>