aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2005-10-08Give proper prototype to gitstrcasestr.Junio C Hamano1-1/+1
Borrow from NO_MMAP patch by Johannes, squelch compiler warnings by declaring gitstrcasestr() when we use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-02GIT 0.99.8v0.99.8Junio C Hamano1-1/+1
GIT already did everything I wanted it to do since mid 0.99.7, and it has almost everything I want it to have now, except a couple of minor tweaks and enhancements. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-02Customize git command for installations that lack certain commands.Junio C Hamano1-1/+6
When the platform lacks certain git subcommands, omit them from the list of subcommands that are available from "git" wrapper. Noticed by Geert Bosch. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-02[PATCH] git on OpenBSDHan Boetes1-0/+4
iconv is installed in /usr/local. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-01More portability.Junio C Hamano1-3/+17
- The location of openssl development files got customizable. - The location of iconv development files got customizable. - Pass $TAR down to t5000 test so that the user can override with 'gmake TAR=gtar'. - Solaris 'bc' does not seem to grok "define abs()". There is no reason to use bc there -- expr would do. Signed-off-by: Junio C Hamano <junio@twinsun.com>
2005-10-01Add git-symbolic-refJunio C Hamano1-1/+1
This adds the counterpart of git-update-ref that lets you read and create "symbolic refs". By default it uses a symbolic link to represent ".git/HEAD -> refs/heads/master", but it can be compiled to use the textfile symbolic ref. The places that did 'readlink .git/HEAD' and 'ln -s refs/heads/blah .git/HEAD' have been converted to use new git-symbolic-ref command, so that they can deal with either implementation. Signed-off-by: Junio C Hamano <junio@twinsun.com>
2005-09-30Still installing the old command names.Junio C Hamano1-1/+2
After seeing Jeff's guide, I changed my mind about the big-rename transition plan. Even if Porcelains are kept up to date, those web documents that describes older world order would live longer and people will stumble across them via google searches. And who knows how many mirrored copies there are. The backward compatible symbolic links *will* be removed before 1.0. But that will not happen in 0.99.8. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-27[PATCH] Make the test more shell generic and fix missing Solaris find optionPeter Eriksen1-1/+1
This is from Peter Eriksen, but further fixed. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-25[PATCH] Add "git-update-ref" to update the HEAD (or other) refLinus Torvalds1-0/+1
This is a careful version of the script stuff that currently just blindly writes HEAD with a new value. You can use git-update-ref HEAD <newhead> or git-update-ref HEAD <newhead> <oldhead> where the latter version verifies that the old value of HEAD matches oldhead. It basically allows a "ref" file to be a symbolic pointer to another ref file by starting with the four-byte header sequence of "ref:". More importantly, it allows the update of a ref file to follow these symbolic pointers, whether they are symlinks or these "regular file symbolic refs". NOTE! It follows _real_ symlinks only if they start with "refs/": otherwise it will just try to read them and update them as a regular file (ie it will allow the filesystem to follow them, but will overwrite such a symlink to somewhere else with a regular filename). In general, using git-update-ref HEAD "$head" should be a _lot_ safer than doing echo "$head" > "$GIT_DIR/HEAD" both from a symlink following standpoint _and_ an error checking standpoint. The "refs/" rule for symlinks means that symlinks that point to "outside" the tree are safe: they'll be followed for reading but not for writing (so we'll never write through a ref symlink to some other tree, if you have copied a whole archive by creating a symlink tree). Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-24Clean generated files a bit more.Junio C Hamano1-2/+2
Now we conditionally compile things in compat/, so we should remove object files there. Python execution can leave *.pyc and *.pyo, which need to be cleaned as well. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-24Stop installing the backward compatible symlinks.Junio C Hamano1-1/+0
Also cmd-renames.sh can now be used to remove the backward compatible symlinks -- this is not used by default in any way. As discussed on the list with Pasky, git-ssh-push and git-ssh-pull will keep calling each other for a while longer. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-24Use 0.99.7.GIT as version between 0.99.7 and 0.99.8Junio C Hamano1-1/+1
Pasky taught me how he does his versioning for ELinks. This will sort after 0.99.7 and interim fixes 0.99.7a, and before 0.99.8. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-24Solaris: give a bit more built-in defaults.Junio C Hamano1-17/+26
Taking the make command line Peter Eriksen uses, give defaults to SHELL_PATH, TAR, CURLDIR, NO_STRCASESTR, and INSTALL. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-24[PATCH] CURLDIR in MakefilePatrick Mauritz1-1/+11
Support systems that do not install curl headers and libraries in /usr/{include,lib}. Signed-off-by: Patrick Mauritz <oxygene@studentenbude.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-22Prettyprint octopus merge message.Junio C Hamano1-1/+1
Including the current branch in the list of heads being merged was not a good idea, so drop it. And shorten the message by grouping branches and tags together to form a single line. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-22Retire diff-helper.Junio C Hamano1-1/+1
The textual diff generation with built-in '-p' in diff-* brothers has proven to be useful enough that git-diff-helper outlived its usefulness. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-22Retire rev-tree.Junio C Hamano1-1/+1
Some old scripts might still use git-rev-tree, but it really is clearly inferior in every way to git-rev-list that such scripts should be fixed anyway. Fixing them should be pretty easy. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-22Retire git-export.Junio C Hamano1-1/+1
git-export was done as a concept example on how easy it is to export the git data to something else. It's much less powerful than any number of trivial one-liner scripts now, and real exporters would not ever use git-export. It's obviously much less powerful than "git-whatchanged", or just about any combination of git-rev-list + git-diff-tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-20[PATCH] ARM optimized SHA1 implementationNicolas Pitre1-12/+24
This is my ARM assembly SHA1 implementation for GIT. It is approximately 50% faster than the generic C version. On an XScale processor running at 400MHz: generic C version: 9.8 MB/s my version: 14.5 MB/s It's not that I expect a lot of big GIT users on ARM, but I stillknow about one important ARM user that might benefit from it, and writing that code was fun. I also reworked the makefile a bit so any optimized SHA1 implementations is used regardless of whether NO_OPENSSL is defined or not. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-19Ship our own copy of subprocess.pyJunio C Hamano1-0/+6
so people without the latest Python could run merge-recursive. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-19[PATCH] strcasestr compatibility replacementLinus Torvalds1-0/+6
Some C libraries lack strcasestr(); add a stupid replacement to help folks with such. [jc: original Linus posting, updated with his "also need <ctype.h>", updated further with a fix from Joachim B Haga <cjhaga@fys.uio.no>"] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-18Merge branch 'master' of .Junio C Hamano1-7/+17
2005-09-17[PATCH] getdomainname should be usable on SunOS with -lnslJunio C Hamano1-1/+6
Jason Riedy suggests that we should be able to use getdomainname if we properly specify which libraries to link. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-15Be more backward compatible with git-ssh-{push,pull}.Junio C Hamano1-0/+5
HPA reminded me that these programs knows about the name of the counterpart on the other end and simply symlinking the old name to new name locally would not be enough. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-15Retire info/rev-cacheJunio C Hamano1-4/+4
It was one of those things that were well intentioned but did not turn out to be useful in practice. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-15[PATCH] Use '-d' as the first flag to 'install'Peter Eriksen1-2/+2
... in order to please Solaris 'install'. GNU install is not harmed with this. [jc: Documentation/Makefile also fixed.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-13Merge branch 'master' of . Junio C Hamano1-1/+1
2005-09-13[PATCH] Rename the 'fredrik' merge strategy to 'recursive'.Fredrik Kuivinen1-1/+1
Otherwise we would regret when Fredrik comes up with another merge algorithm with different pros-and-cons with the current one. Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-12Merge branch 'master' of . Junio C Hamano1-1/+1
2005-09-12[PATCH] Add "git grep" helperLinus Torvalds1-1/+1
Very convenient shorthand for git-ls-files [file-patterns] | xargs grep <pattern> which I tend to do all the time. Yes, it's trivial, but it's really nice. I can do git grep '\<some_variable\>' arch/i386 include/asm-i386 and it does exactly what you'd think it does. And since it just uses the normal git-ls-files file patterns, you can do things like git grep something 'include/*.h' and it will search all header files under the include/ subdirectory. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Prepare 0.99.7 release candidate branch.Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Add a new merge strategy by Fredrik Kuivinen.Junio C Hamano1-1/+22
I really wanted to try this out, instead of asking for an adjustment to the 'git merge' driver and waiting. For now the new strategy is called 'fredrik' and not in the list of default strategies to be tried. The script wants Python 2.4 so this commit also adjusts Debian and RPM build procecure files. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Use Daniel's read-tree in the merge strategy 'resolve'.Junio C Hamano1-1/+2
And rename the one Linus kept calling stupid, 'stupid'. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Multi-backend merge driver.Junio C Hamano1-1/+2
The new command 'git merge' takes the current head and one or more remote heads, with the commit log message for the automated case. If the heads being merged are simple fast-forwards, it acts the same way as the current 'git resolve'. Otherwise, it tries different merge strategies and takes the result from the one that succeeded auto-merging, if there is any. If no merge strategy succeeds auto-merging, their results are evaluated for number of paths needed for hand resolving, and the one with the least number of such paths is left in the working tree. The user is asked to resolve them by hand and make a commit manually. The calling convention from the 'git merge' driver to merge strategy programs is very simple: - A strategy program is to be called 'git-merge-<strategy>'. - They take input of this form: <common1> <common2> ... '--' <head> <remote1> <remote2>... That is, one or more the common ancestors, double dash, the current head, and one or more remote heads being merged into the current branch. - Before a strategy program is called, the working tree is matched to the current <head>. - The strategy program exits with status code 0 when it successfully auto-merges the given heads. It should do update-cache for all the merged paths when it does so -- the index file will be used to record the merge result as a commit by the driver. - The strategy program exits with status code 1 when it leaves conflicts behind. It should do update-cache for all the merged paths that it successfully auto-merged, and leave the cache entry in the index file as the same as <head> for paths it could not auto-merge, and leave its best-effort result with conflict markers in the working tree when it does so. - The strategy program exists with status code other than 0 or 1 if it does not handle the given merge at all. As examples, this commit comes with merge strategies based on 'git resolve' and 'git octopus'. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09Retire support for old environment variables.Junio C Hamano1-1/+1
We have deprecated the old environment variable names for quite a while and now it's time to remove them. Gone are: SHA1_FILE_DIRECTORIES AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09[PATCH] remove duplicate git-send-email-script.perl target in MakefileMarco Roeland1-1/+1
Remove duplicate git-send-email-perl target in Makefile. When WITH_SEND_EMAIL was defined, as in the Debian 'deb' target, git-send-email-perl was added twice to SCRIPT_PERL, leading to a duplicate definition in the Makefile. Creating a ".deb" then failed. Signed-off-by: Marco Roeland <marco.roeland@xs4all.nl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08'build' scripts before installing.Junio C Hamano1-18/+26
Earlier we renamed git-foo.sh to git-foo while installing, which was mostly done by inertia than anything else. This however made writing tests to use scripts harder. This patch builds the scripts the same way as we build binaries from their sources. As a side effect, you can now specify non-standard paths you have your Perl binary is in when running the make. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07git --version tells which version of git you have.Junio C Hamano1-2/+8
Originally from Martin Atukunda <matlads@dsmagic.com> but adjusted for post-rename code. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Portability fix for Solaris 10/x86Patrick Mauritz1-2/+16
* getdomainname unavailable there. * needs -lsocket for linkage. * needs __EXTENSIONS__ at the beginning of convert-objects.c [JC: I've done this slightly differently from what Patrick originally sent to the list and dropped the bit that deals with installations that has curl header and library at non-default location. I am resisting the slipperly slope called autoconf.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Big tool rename.Junio C Hamano1-75/+77
As promised, this is the "big tool rename" patch. The primary differences since 0.99.6 are: (1) git-*-script are no more. The commands installed do not have any such suffix so users do not have to remember if something is implemented as a shell script or not. (2) Many command names with 'cache' in them are renamed with 'index' if that is what they mean. There are backward compatibility symblic links so that you and Porcelains can keep using the old names, but the backward compatibility support is expected to be removed in the near future. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07GIT 0.99.6v0.99.6Junio C Hamano1-1/+1
2005-09-07Flatten tools/ directory to make build procedure simpler.Junio C Hamano1-13/+36
Also make platform specific part more isolated. Currently we only have Darwin defined, but I've taken a look at SunOS specific patch (which I dropped on the floor for now) as well. Doing things this way would make adding it easier. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-05Merge branch 'master' of . Junio C Hamano1-1/+2
2005-09-05Retire git-clone-dumb-http.Junio C Hamano1-1/+1
... and fold it into git-clone-script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-04Install archimport-script.Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-29Merge refs/heads/master from . Junio C Hamano1-1/+2
2005-08-29Remove git-apply-patch-script.Junio C Hamano1-1/+1
Now the rebase is rewritten to use git cherry-pick, there is no user for that ancient script. I've checked Cogito and StGIT to make sure they do not use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-29Redo "revert" using three-way merge machinery.Junio C Hamano1-0/+1
The reverse patch application using "git apply" sometimes is too rigid. Since the user would get used to resolving conflicting merges by hand during the normal merge experience, using the same machinery would be more helpful rather than just giving up. Cherry-picking and reverting are essentially the same operation. You pick one commit, and apply the difference that commit introduces to its own commit ancestry chain to the current tree. Revert applies the diff in reverse while cherry-pick applies it forward. They share the same logic, just different messages and merge direction. Rewrite "git rebase" using "git cherry-pick". Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-26Merge master branch changes into release candidate branch.Junio C Hamano1-1/+4
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-26Enable git-send-email-script on Debian.Junio C Hamano1-1/+4
You can define WITH_SEND_EMAIL to include the send-email command as part of the installation. Since Debian, unlike RPM/Fedora, has the two necessary Perl modules available as part of the mainline distribution, there is no reason for us to shy away from shipping send-email. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-24Prepare 0.99.6 branch.Junio C Hamano1-1/+1
2005-08-24Merge refs/heads/master from . Junio C Hamano1-1/+2
2005-08-24[PATCH] Infamous 'octopus merge'Junio C Hamano1-0/+1
This script uses the list of heads and their origin multi-head "git fetch" left in the $GIT_DIR/FETCH_HEAD file, and makes an octopus merge on top of the current HEAD using them. The implementation tries to be strict for the sake of safety. It insists that your working tree is clean (no local changes) and matches the HEAD, and when any of the merged heads does not automerge, the whole process is aborted and tries to rewind your working tree is to the original state. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-24[PATCH] Retire git-parse-remote.Junio C Hamano1-1/+1
Update git-pull to match updated git-fetch and allow pull to fetch from multiple remote references. There is no support for resolving more than two heads, which will be done with "git octopus". Update "git ls-remote" to use git-parse-remote-script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-24[PATCH] Start adding the $GIT_DIR/remotes/ support.Junio C Hamano1-1/+1
All the necessary parsing code is in git-parse-remote-script; update git-push-script to use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-23Merge refs/heads/master from . Junio C Hamano1-2/+1
2005-08-22Clean-up output from "git show-branch" and document it.Junio C Hamano1-1/+0
When showing only one branch a lot of default output becomes redundant, so clean it up a bit, and document what is shown. Retire the earlier implementation "git-show-branches-script". Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-22[PATCH] Add 'git show-branch'.Junio C Hamano1-1/+1
The 'git show-branches' command turns out to be reasonably useful, but painfully slow. So rewrite it in C, using ideas from merge-base while enhancing it a bit more. - Unlike show-branches, it can take --heads (show me all my heads), --tags (show me all my tags), or --all (both). - It can take --more=<number> to show beyond the merge-base. - It shows the short name for each commit in the extended SHA1 syntax. - It can find merge-base for more than two heads. Examples: $ git show-branch --more=6 HEAD is almost the same as "git log --pretty=oneline --max-count=6". $ git show-branch --merge-base master mhf misc finds the merge base of the three given heads. $ git show-branch master mhf misc shows logs from the top of these three branch heads, up to their common ancestor commit is shown. $ git show-branch --all --more=10 is poor-man's gitk, showing all the tags and heads, and going back 10 commits beyond the merge base of those refs. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-16Merge with master to get diff fixes.Junio C Hamano1-1/+1
2005-08-16[PATCH] Make "git diff" work inside relative subdirectoriesLinus Torvalds1-1/+1
We always show the diff as an absolute path, but pathnames to diff are taken relative to the current working directory (and if no pathnames are given, the default ends up being all of the current working directory). Note that "../xyz" also works, so you can do cd linux/drivers/char git diff ../block and it will generate a diff of the linux/drivers/block changes. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-15Merge master changes into rc.Junio C Hamano1-0/+1
2005-08-15Add git-show-branches-scriptJunio C Hamano1-0/+1
Often I find myself wanting to do quick branches check when I am not in the windowing environment and cannot run gitk. This stupid script shows commits leading to the heads of interesting branches with indication which ones belong to which branches, so that fork point is somewhat discernible without using gitk. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-13Merge master changes into release candidate branch.Junio C Hamano1-42/+47
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-12Make tools/ directory first-class citizen.Junio C Hamano1-2/+0
Tools directory being separate is just a historical coincidence. Build and install together with the main directory, just like the clean target does. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-12[PATCH] Unify Makefile indentationPetr Baudis1-14/+14
Use <tab> instead of two spaces uniformly in the Makefile, even in the ifdefs. Gives it a nice consistent look. [jc: At the same time I indented the nested ifdefs to make them slightly easier to read.] Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-12[PATCH] Use $DESTDIR instead of $destPetr Baudis1-3/+3
$DESTDIR is more usual during the build than $dest and is what is usually used in the makefiles, so let's use it too. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-12Make CFLAGS overridable from make command line.Pavel Roskin1-21/+25
This patch renames COPTS to CFLAGS, because it's COPTS that was user overridable. Also, -Wall is moved there because it's optional. What was CFLAGS is now ALL_CFLAGS, which users should not override. Defines are added to DEFINES. Since ALL_CFLAGS is recursively expanded, it uses the final value of DEFINES. Implicit rules are made explicit since the implicit rules use CFLAGS rather than ALL_CFLAGS. I believe that serious projects should not rely on implicit rules anyway. Percent rules are used because they are used already and because they don't need the .SUFFIXES target. [jc: in addition to updating the patch for 0.99.4, I fixed up a glitch in Pavel's original patch which compiled sha1.o out of mozilla-sha1/sha1.c, where it should have left the resulting object file in mozilla-sha1 directory for later "ar".] Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-12Clean generated files a bit more, to cope with Debian build droppings.Junio C Hamano1-2/+5
Also attempt to build a source package for debian.
2005-08-11Merge changes in the master branch into 0.99.5 preparation branch.Junio C Hamano1-1/+2
2005-08-11Clean generated deb files.Junio C Hamano1-1/+2
Do not forgot that we have a separate git-tk package these days. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-10Start preparing for 0.99.5Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-10Merge with master.Junio C Hamano1-0/+1
This merges commit c35a7b8d806317dc1762e36561cbd31c2530dd9c from master into our head commit edee414c3e5a546aae3dd1529f397df949713305 Sincerely, jit-merge command.
2005-08-09git-revert: revert an existing commit.Junio C Hamano1-0/+1
Given one existing commit, revert the change the patch introduces, and record a new commit that records it. This requires your working tree to be clean (no modifications from the HEAD commit). This is based on what Linus posted to the list, with enhancements he suggested, including the use of -M to attempt reverting renames. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-09Merge with master.Junio C Hamano1-1/+1
This merges commit f10e0e0b18c8e2e69535e7380fb3c1f9b097cfda from master into our head commit c3958a7926ab20b90fe0767580b466698477f5b6 Sincerely, jit-merge command.
2005-08-09Downgrade git-send-email-scriptJunio C Hamano1-1/+1
RPM folks have problem installing the package otherwise. Since its usefulness does have much to do with GIT, downgrade it to "contrib" status for now. We may want to move it to contrib/ subdirectory after auditing other programs when we reorganize the source tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-08Merge with master.Junio C Hamano1-0/+1
This merges commit 3c4e8a636f4de3668b24d0020df731cdc78ae6e9 from master into our head commit 80f45687f44b6258b0eacae6b1ae15e3ad4a6552 Sincerely, jit-merge command.
2005-08-08Makefile dependency fix.Junio C Hamano1-0/+1
Johannes Schindelin noticed that recent Makefile updates were too eager to loosen dependencies. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-06Fix build rules for debian package.Junio C Hamano1-5/+5
Run install-tools target to install the tools to accept e-mail patches. Also clean up the main Makefile a bit. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-06GIT 0.99.4 (release candidate)Junio C Hamano1-8/+10
This is my first attempt to adjust Debian and RPM to pass prefix, to prepare the 0.99.4 release. It updates debian/rules and git-core.spec.in to properly pass prefix when building binary packages. It also updates debian/changelog to make the resulting binary package name 0.99.4; this is not needed on the RPM side (it takes the version number from the main Makefile). Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-06Redo the templates generation and installation.Junio C Hamano1-3/+6
Per discussion with people interested in binary packaging, change the default template location from /etc/git-core to /usr/share/git-core hierarchy. If a user wants to run git before installing for whatever reason, in addition to adding $src to the PATH environment variable, git-init-db can be run with --template=$src/templates/blt/ parameter. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-05Update get_sha1() to grok extended format.Junio C Hamano1-1/+2
Everybody envies rev-parse, who is the only one that can grok the extended sha1 format. Move the get_extended_sha1() out of rev-parse, rename it to get_sha1() and make it available to everybody else. The one I posted earlier to the list had one bug where it did not handle a name that ends with a digit correctly (it incorrectly tried the "Nth parent" path). This commit fixes it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-03Retire check-files.Junio C Hamano1-1/+1
The king penguin said: It has no point any more, all the tools check the file status on their own, and yes, the thing should probably be removed. and the faithful servant makes it so. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-03Install sample hooksJunio C Hamano1-0/+5
A template mechanism to populate newly initialized repository with default set of files is introduced. Use it to ship example hooks that can be used for update and post update checks, as Josef Weidendorfer suggests. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-02[PATCH] Add git-send-email-script - tool to send emails from ↵Ryan Anderson1-0/+1
git-format-patch-script This is based off of GregKH's script, send-lots-of-email.pl, and strives to do all the nice things a good subsystem maintainer does when forwarding a patch or 50 upstream: All the prior handlers of the patch, as determined by the Signed-off-by: lines, and/or the author of the commit, are cc:ed on the email. All emails are sent as a reply to the previous email, making it easy to skip a collection of emails that are uninteresting. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-02Clean t/trash upon "make clean" as well.Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-01GIT 0.99.3v0.99.3Junio C Hamano1-1/+1
Things have slowly but surely started to settle down, and the http transport finally can natively grok packed repositories. To give Pasky a good anchor point, hoping that he can start split off the core part from Cogito, here is the 0.99.3, which will be accompanied with its own tag. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-01Retire git-fetch-dumb-http and missing-revsJunio C Hamano1-3/+2
Now git-http-pull knows how to do packed repo, retire scripted hacks I placed as a stop-gap measure. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-31[PATCH] Added hook in git-receive-packJosef Weidendorfer1-0/+3
Just before updating a ref, $GIT_DIR/hooks/update refname old-sha1 new-sha1 is called if executable. The hook can decline the ref to be updated by exiting with a non-zero status, or allow it to be updated by exiting with a zero status. The mechanism also allows e.g sending of a mail with pushed commits on the remote repository. Documentation update with an example hook is included. jc: The credits of the basic idea and initial implementation go to Josef, but I ended up rewriting major parts of his patch, so bugs are all mine. Also I changed the semantics for the hook from his original version (which were post-update hook) so that the hook can optionally decline to update the ref, and also can be used to implement the overall cleanups. The latter was primarily to implement a suggestion from Linus that calling update-server-info should be made optional. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-31Add a stupid "count objects" script.Junio C Hamano1-0/+2
This counts the number of unpacked object files and disk space consumed by them, to help you decide when it is a good time to repack. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-31Fetch from a packed repository on dumb servers.Junio C Hamano1-2/+3
Implement fetching from a packed repository over http/https using the dumb server support files. I consider some parts of the logic should be in a separate C program, but it appears to work with my simple tests. I have backburnered it for a bit too long for my liking, so let's throw it out in the open and see what happens. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-30[PATCH] add NO_CURL option to the MakefileJohannes Schindelin1-1/+8
This patch implements Linus' idea that if you are not interested in pulling by HTTP, you can now say NO_CURL=1 make to compile everything except git-http-pull (thus not needing curl at all). Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-30[PATCH] Making it easier to find which change introduced a bugLinus Torvalds1-1/+1
This adds a new "git bisect" command. - "git bisect start" start bisection search. - "git bisect bad <rev>" mark some version known-bad (if no arguments, then current HEAD) - "git bisect good <revs>..." mark some versions known-good (if no arguments, then current HEAD) - "git bisect reset <branch>" done with bisection search and go back to your work (if no arguments, then "master"). The way you use it is: git bisect start git bisect bad # Current version is bad git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version # tested that was good When you give at least one bad and one good versions, it will bisect the revision tree and say something like: Bisecting: 675 revisions left to test after this and check out the state in the middle. Now, compile that kernel, and boot it. Now, let's say that this booted kernel works fine, then just do git bisect good # this one is good which will now say Bisecting: 337 revisions left to test after this and you continue along, compiling that one, testing it, and depending on whether it is good or bad, you say "git bisect good" or "git bisect bad", and ask for the next bisection. Until you have no more left, and you'll have been left with the first bad kernel rev in "refs/bisect/bad". Oh, and then after you want to reset to the original head, do a git bisect reset to get back to the master branch, instead of being in one of the bisection branches ("git bisect start" will do that for you too, actually: it will reset the bisection state, and before it does that it checks that you're not using some old bisection branch). Not really any harder than doing series of "quilt push" and "quilt pop", now is it? [jc: This patch is a rework based on what Linus posted to the list. The changes are: - The original introduced four separate commands, which was three too many, so I merged them into one with subcommands. - Since the next thing you would want to do after telling it "bad" and "good" is always to bisect, this version does it automatically for you. - I think the termination condition was wrong. The original version checked if the set of revisions reachable from next bisection but not rechable from any of the known good ones is empty, but if the current bisection was a bad one, this would not terminate, so I changed it to terminate it when the set becomes a singleton or empty. - Removed the use of shell array variable. ] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-30NO_OPENSSL should really mean no openssl.Junio C Hamano1-1/+3
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29Fix typo in recent Makefile cleanup.Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] Build commands through object filesPetr Baudis1-7/+8
Separate the process of building the commands to compilation and linkage. This makes it more consistent with the library objects, is the traditional thing to do, and significantly speeds up the subsequent rebuilds, especially for us the people who develop git on 300MHz notebooks. Ported from Cogito. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] Support for NO_OPENSSLPetr Baudis1-1/+7
Support for completely OpenSSL-less builds. FSF considers distributing GPL binaries with OpenSSL linked in as a legal problem so this is trouble e.g. for Debian, or some people might not want to install OpenSSL anyway. If you make NO_OPENSSL=1 you get completely OpenSSL-less build, disabling --merge-order and using Mozilla's SHA1 implementation. Ported from Cogito. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] Reorder Makefile rulesPetr Baudis1-30/+57
The Makefile rules were massively reordered so that they are actually logically grouped now. Captions were added to separate the sections. No rule contents was touched during the process. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] Remove the explicit Makefile dependencies descriptionPetr Baudis1-66/+8
Remove about one gazillion of explicit dependency rules with few lines describing the general dependency pattern and then the exceptions. This noticably shortens the Makefile and makes it easier to touch it. This is part of the Cogito Makefile changes port. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] Improve the compilation-time settings interfacePetr Baudis1-18/+38
Describe variables which make itself takes and adjusts compilation accordingly (MOZILLA_SHA1, NO_OPENSSL, PPC_SHA1), and make adding defines more convenient through the $DEFINES variable. $COPTS includes -g as well now and is not overriden if it was already declared in the environment. Also, $CFLAGS is appended to rather than reset, so that if there was already a $CFLAGS environment variable, it's appended to. Some more variables are also made overridable through the environment. Renamed $bin to $bindir which is the name commonly used for this. This is part of the Cogito Makefile changes port. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-29[PATCH] socklen_t needs to be defined and libssl to be linked on old Mac OS XJohannes Schindelin1-0/+4
On older Mac OS X (10.2.8), no socklen_t is defined, and therefore daemon.c does not compile. However, Mac OS X 10.4 seems to define socklen_t differently. Also, linking fails due to some symbols defined in libssl (not just libcrypto). [jc: I am tentatively dropping the socklen_t part of the patch because I am waiting for confirmation on the server side IPV6 patch from Yoshifuji-san] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-27[PATCH] Add git-request-pull-script, a short script that generates a summary ↵Ryan Anderson1-1/+2
of pending changes A short message requesting a pull from the repository is also included. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-26Name it 0.99.2v0.99.2Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-23Add a "git rename" to help with - surprise surprise - renamesLinus Torvalds1-1/+1
It's stupid. We'd want to rename directories too, but this doesn't do that yet - easy enough to do per se, we just need to carefully list all the pathnames that got moved (and remember to ignore the files that weren't tracked but are in the subdirectory that got moved). Doing the directory case will require a bit more scripting.. Something like oldfiles=($(git-ls-files | grep '^$src')) newfiles=($(git-ls-files | sed ':^$src: s:^$src:$dst:')) mv $src $dst && git-update-cache --add --remove -- "${oldfiles[@]}" "${newfiles[@]}" might do it, except it needs to be done right, and carefully. Methinks perl is probably better at this. Hint hint..
2005-07-23[PATCH] Support cloning packed repo from dumb http servers.Junio C Hamano1-1/+1
Using the information prepared with update-server-info, a truly dumb http server can allow cloning with this client side support. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-23[PATCH] Add update-server-info.Junio C Hamano1-1/+10
The git-update-server-info command prepares informational files to help clients discover the contents of a repository, and pull from it via a dumb transport protocols. Currently, the following files are produced. - The $repo/info/refs file lists the name of heads and tags available in the $repo/refs/ directory, along with their SHA1. This can be used by git-ls-remote command running on the client side. - The $repo/info/rev-cache file describes the commit ancestry reachable from references in the $repo/refs/ directory. This file is in an append-only binary format to make the server side friendly to rsync mirroring scheme, and can be read by git-show-rev-cache command. - The $repo/objects/info/pack file lists the name of the packs available, the interdependencies among them, and the head commits and tags contained in them. Along with the other two files, this is designed to help clients to make smart pull decisions. The git-receive-pack command is changed to invoke it at the end, so just after a push to a public repository finishes via "git push", the server info is automatically updated. In addition, building of the rev-cache file can be done by a standalone git-build-rev-cache command separately. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-23[PATCH] git-ls-remote: show and optionally store remote refs.Junio C Hamano1-1/+2
Retrieve and list the remote refs from git, http, and rsync repositories, and optionally stores the retrieved refs in the local repository under the same name. To access a git URL, git-peek-remote command is used. An http URL needs to have an up-to-date info/refs file for discovery, which will be introduced by a later update-server-info patch. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-23[PATCH] git-peek-remote: show tags and heads from a remote repository.Junio C Hamano1-1/+2
Add a git-peek-remote command that talks with upload-pack the same way git-fetch-pack and git-clone-pack do, to show the references the remote side has on the standard output. A later patch introduces git-ls-remote that implements a UI to store tag values retrieved using this command. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-22[PATCH] Install tools with "make install-tools".Junio C Hamano1-0/+4
Match the main Makefile by separating COPTS from CFLAGS, defining INSTALL, prefix, and bin. Add a new target 'install-tools' to the main Makefile to install them. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-22[PATCH] Install git-verify-tag-scriptEric W. Biederman1-1/+1
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-16[PATCH] fetch/pull: short-hand notation for remote repositories.Junio C Hamano1-1/+1
Since pull and fetch are done often against the same remote repository repeatedly, keeping the URL to pull from along with the name of the head to use in $GIT_DIR/branches/$name makes a lot of sense. Adopt that convention from Cogito, and try to be compatible when possible; storing a partial URL and completing it with a trailing path may not be understood by Cogito. While we are at it, fix pulling a tag. Earlier, we updated only refs/tags/$tag without updating FETCH_HEAD, and called resolve-script using a stale (or absent) FETCH_HEAD. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-15Ahh, the heady days of 0.99 patchfilesv0.99.1Linus Torvalds1-2/+2
Now, not all projects can be as refined as Linux. Before the final 1.0 release, we went through fifteen 0.99 patchfiles, and pl14 alone went through subreleases 'a' through 'z'. Now _that_ is a release process. Not to mention the odd-ball releases, like 0.96c+ Sadly, in this day and age of RPM's etc, we have silly limitations, and I cannot call this release '0.99pl5a or some such awe-inspiring name just because "rpmbuild" is such a party pooper. So it's just 0.99.1. Oh well. Aspiring to such greatness as the Linux release numbering is hubris anyway. You can attain such perfection only once in your life.
2005-07-15[PATCH] Add doc and install-doc targets to the MakefileEric W. Biederman1-0/+6
This makes it straightforward for people wanting to build and install the git man pages and the rest of the documentation to do so. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-15[PATCH] Use gzip -f when building the git-core tarballEric W. Biederman1-1/+1
This allows rebuilding the tarball when it is already present without having to answer annoying questions from gzip Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-15[PATCH] Add a RPMBUILD make variableEric W. Biederman1-1/+2
This allows RPMBUILD to be overridden for people with old versions of rpm or people who want to pass rpmbuild extra options. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-15[PATCH] Add git-var a tool for reading interesting git variables.Eric W. Biederman1-1/+2
Sharing code between shell scripts and C is a challenge. The program git-var allows us to have a set of named values that a shell script can interrogate and a normal C program can simply call the functions that compute them. Allowing sharing when computing plain test values. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-13Add a "git-daemon" that listens on a TCP portLinus Torvalds1-1/+1
.. and does a "git-upload-pack" on demand.
2005-07-12Abstract out the "name <email> date" handling of commit-tree.cLinus Torvalds1-1/+1
We'll want to use it for the tagging too.
2005-07-12"make clean" should clean up after a rpm buildLinus Torvalds1-0/+1
There's a few generated files that we left behind.
2005-07-12Rename the RPM from "git" to "git-core"Linus Torvalds1-6/+6
That way we avoid any confusion with "GNU Interactive Tools", and it's more descriptive anyway (the rpm documentation talks about how git is split into a "core" part and an "SCM" part, this makes it clear that this is the core one).
2005-07-11Add "git branch" scriptLinus Torvalds1-1/+2
You can use it as git branch <branchname> [start-point] and it creates a new branch of name <branchname>. If a starting point is specified, that will be where the branch is created, otherwise it will be created at the current HEAD. The sequence git branch xyz abc git checkout xyz can also be written as git checkout -b xyz abc as per the previous commit.
2005-07-11[PATCH] Bootstrap "make dist"Chris Wright1-2/+2
Use git-tar-tree directly from git source during make dist. This handles bootstrap issue with git not being installed. Signed-off-by: Chris Wright <chrisw@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-08[PATCH] Expose object ID computation functions.Bryan Larsen1-2/+2
This patch makes the first half of write_sha1_file() and index_fd() externally visible, to allow callers to compute the object ID without actually storing it in the object database. [JC demangled the whitespaces himself because he liked the patch so much, and reworked the interface to index_fd() slightly, taking suggestion from Linus and of his own.] Signed-off-by: Bryan Larsen <bryan.larsen@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-08Add "mkpath()" helper functionLinus Torvalds1-1/+1
I'm bored with doing it by hand all the time.
2005-07-08Add "git-push-script" to make a more regular interfaceLinus Torvalds1-1/+1
It only does local and ssh pushes, because it's really just a wrapper for git-send-pack. We might make it do an rsync mirror or something, of course.
2005-07-08[PATCH] Make sq_expand() available as sq_quote().Junio C Hamano1-0/+3
A useful shell safety helper sq_expand() was hidden as a static function in diff.c. Extract it out and make it available as sq_quote(). Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-08Add "git-sh-setup-script" for common git shell script setupLinus Torvalds1-1/+1
It sets up the normal git environment variables and a few helper functions (currently just "die()"), and returns ok if it all looks like a git archive. So use it something like . git-sh-setup-script || die "Not a git archive" to make the rest of the git scripts more careful and readable.
2005-07-07[PATCH] git-format-patch: Prepare patches for e-mail submission.Junio C Hamano1-1/+2
This is the script I use to prepare patches for e-mail submission. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-07Infrastructure for git rpm builds. Adds GIT_VERSION to Makefile and new makeChris Wright1-0/+18
targets: git.spec, dist, and rpm. A simple 'make rpm' will build the rpm. Also adds git.spec.in which is used to generate git.spec. Signed-off-by: Chris Wright <chrisw@osdl.org>
2005-07-05Add a "git-show-index" helper that shows the contents of a pack indexLinus Torvalds1-1/+2
This was invaluable for debugging the zero-sized compression issue, and might be useful for scripting too, if people want to see the contents of a pack.
2005-07-05Add "git-clone-pack" program to help with "git clone"Linus Torvalds1-1/+1
2005-07-05Merge with Linus' current treeMatthias Urlichs1-2/+1
2005-07-04Commit first cut at "git-fetch-pack"Linus Torvalds1-4/+5
It's meant to be used by "git fetch" for the local and ssh case. It doesn't actually do the fetching now, but it does discover the common commit point.
2005-07-04Factor out the ssh connection stuff from send-pack.cLinus Torvalds1-1/+1
I want to use it for git-fetch-pack too.
2005-07-03Add "git-prune-packed" that removes objects that exist in a pack.Linus Torvalds1-1/+2
This, together with "git repack" can be used to clean up unpacked git archives.
2005-07-03Add "git repack" command that does an incremental packLinus Torvalds1-1/+1
2005-07-03Fix up header file dependencies and add sparse checking rulesLinus Torvalds1-1/+10
We're pretty sparse-clean already, thanks to earlier efforts, but some things inevitably creep in.
2005-06-30[PATCH] verify-pack updates.Junio C Hamano1-1/+1
Nico pointed out that having verify_pack.c and verify-pack.c was confusing. Rename verify_pack.c to pack-check.c as suggested, and enhances the verification done quite a bit. - Built-in sha1_file unpacking knows that a base object of a deltified object _must_ be in the same pack, and takes advantage of that fact. - Earlier verify-pack command only checked the SHA1 sum for the entire pack file and did not look into its contents. It now checks everything idx file claims to have unpacks correctly. - It now has a hook to give more detailed information for objects contained in the pack under -v flag. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-29Turn on optimization againLinus Torvalds1-1/+1
It got turned off by mistake just because I had been doing debugging, and committed the Makefile that had other changes ...
2005-06-29Make send/receive-pack be closer to doing something interestingLinus Torvalds1-3/+4
2005-06-29Start of "git-send-pack", the local part of sending off a packLinus Torvalds1-1/+2
Like git-receive-pack, this is only partway done.
2005-06-29Add first cut at "git-receive-pack"Linus Torvalds1-1/+3
It's not working yet, but it's at the point where I want to be able to track my changes. The theory of operation is that this is the "remote" side of a "git push". It can tell us what references the remote side has, receives out reference update commands and a pack-file, and can execute the unpacking command.
2005-06-29[PATCH] Add git-verify-pack command.Junio C Hamano1-2/+3
Given a list of <pack>.idx files, this command validates the index file and the corresponding .pack file for consistency. This patch also uses the same validation mechanism in fsck-cache when the --full flag is used. During normal operation, sha1_file.c verifies that a given .idx file matches the .pack file by comparing the SHA1 checksum stored in .idx file and .pack file as a minimum sanity check. We may further want to check the pack signature and version when we map the pack, but that would be a separate patch. Earlier, errors to map a pack file was not flagged fatal but led to a random fatal error later. This version explicitly die()s when such an error is detected. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-28Make git pack files use little-endian size encodingLinus Torvalds1-1/+1
This makes it match the new delta encoding, and admittedly makes the code easier to follow. This also updates the PACK file version to 2, since this (and the delta encoding change in the previous commit) are incompatible with the old format.
2005-06-28Added Perl git-cvsimport-scriptMatthias Urlichs1-2/+1
2005-06-27[PATCH] Remove "delta" object representation.Junio C Hamano1-4/+3
Packed delta files created by git-pack-objects seems to be the way to go, and existing "delta" object handling code has exposed the object representation details to too many places. Remove it while we refactor code to come up with a proper interface in sha1_file.c. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-26git-pack-objects: write the pack files with a SHA1 csumLinus Torvalds1-2/+2
We want to be able to check their integrity later, and putting the sha1-sum of the contents at the end is a good thing. The writing routines are generic, so we could try to re-use them for the index file, instead of having the same logic duplicated. Update unpack-objects to know about the extra 20 bytes at the end of the index.
2005-06-26[PATCH] Add git-relink-script to fix up missing hardlinksRyan Anderson1-1/+1
This will scan 2 or more object repositories and look for common objects, check if they are hardlinked, and replace one with a hardlink to the other if not. This version warns when skipping files because of size differences, and handle more than 2 repositories automatically. Signed-off-by: Ryan Anderson <ryan@michonline.com> Cheered-on-by: Jeff Garzik <jgarzik@pobox.com> Acked-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25[PATCH] git-rebase-script: rebase local commits to new upstream head.Junio C Hamano1-1/+1
Using git-cherry, forward port local commits missing from the new upstream head. This also depends on "-m" flag support in git-commit-script. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25[PATCH] git-cherry: find commits not merged upstream.Junio C Hamano1-1/+1
The git-cherry command helps the git-rebase script by finding commits that have not been merged upstream. Commits already included in upstream are prefixed with '-' (meaning "drop from my local pull"), while commits missing from upstream are prefixed with '+' (meaning "add to the updated upstream"). Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25First cut at git-unpack-objectsLinus Torvalds1-1/+2
So far it just reads the header and generates the list of objects. It also sorts them by the order they are written in the pack file, since that ends up being the same order we got them originally, and is thus "most recent first".
2005-06-25git-pack-objects: create a packed object representation.Linus Torvalds1-1/+3
This is kind of like a tar-ball for a set of objects, ready to be shipped off to another end. Alternatively, you could use is as a packed representation of the object database directly, if you changed "read_sha1_file()" to read these kinds of packs. The latter is partiularly useful to generate a "packed history", ie you could pack up your old history efficiently, but still have it available (at a performance hit, of course). I haven't actually written an unpacker yet, so the end result has not been verified in any way yet. I obviously always write bug-free code, so it just has to work, no?
2005-06-23Add "git-patch-id" program to generate patch ID's.Linus Torvalds1-1/+2
A "patch ID" is nothing but a SHA1 of the diff associated with a patch, with whitespace and line numbers ignored. As such, it's "reasonably stable", but at the same time also reasonably unique, ie two patches that have the same "patch ID" are almost guaranteed to be the same thing. IOW, you can use this thing to look for likely duplicate commits.
2005-06-22Add "git-clone-script" thingyLinus Torvalds1-1/+2
It's just a trivial wrapper, but it should make Jeff's kernel developer guide to git look a bit less intimidating.
2005-06-22Add "gitk" to the list of scripts to be installed automatically.Linus Torvalds1-1/+1
Btw, it's fun just looking at the merged git repository itself with gitk, now that it has two "roots".
2005-06-21Add "git checkout" that does what the name suggestsLinus Torvalds1-1/+1
It is careful by default and refuses to overwrite old info, but if you want to force everything to be re-read, use the "-f" flag. Some day I'll make it take individual filenames too. Right now it's all-or-nothing.
2005-06-14Trivial git script fixupsLinus Torvalds1-1/+2
Fix permissions, and add trivial "reset" and "add" scripts. The "reset" script just resets the index back to head, while the "add" script is just a crutch for people used to do "cvs add".
2005-06-13Add "git diff" scriptLinus Torvalds1-1/+1
It's a simple helper that depending on the arguments will either use git-diff-files, git-diff-cache or git-diff-tree.
2005-06-13Add 'git-rev-parse' helper scriptLinus Torvalds1-1/+2
It's an incredibly cheesy helper that changes human-readable revision arguments into the git-rev-list argument format. You can use it to do something like this: git-rev-list --pretty $(git-rev-parse --default HEAD "$@") which is what git-log-script will become. Here git-rev-parse will then allow you to use arguments like "v2.6.12-rc5.." or similar human-readable ranges. It's really quite stupid: "a..b" will be converted into "a" and "^b" if "a" and "b" are valid object pointers. And the "--default" case will be used if nothing but flags have been seen, so that you can default to a certain argument if there are no other ranges.
2005-06-09[PATCH] Add git-diff-stages command.Junio C Hamano1-1/+2
The diff-* brothers acquired a sibling, git-diff-stages. With an unmerged index file, you specify two stage numbers and it shows the differences between them. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07Add CVS import scripts and programsLinus Torvalds1-2/+4
This gets the "cvs2git" program from the old git-tools archive, and adds a nice script around it that makes it much easier to use. With this, you should be able to import a CVS archive using just a simple git cvsimport <cvsroot> <module> and you're done. At least it worked for my one single test. NOTE!! This may need tweaking. It currently expects (and verifies) that cvsps version 2.1 is installed, but you can't actually set any of the cvsps parameters, like the time fuzz.
2005-06-06[PATCH] Operations on refsDaniel Barkalow1-1/+2
This patch adds code to read a hash out of a specified file under {GIT_DIR}/refs/, and to write such files atomically and optionally with an compare and lock. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06git-rev-list: make sure to link with ssl librariesLinus Torvalds1-0/+1
Needed for the bignum stuff used by merge-order.
2005-06-06[PATCH] Modify git-rev-list to linearise the commit history in merge order.jon@blackcubes.dyndns.org1-2/+3
This patch linearises the GIT commit history graph into merge order which is defined by invariants specified in Documentation/git-rev-list.txt. The linearisation produced by this patch is superior in an objective sense to that produced by the existing git-rev-list implementation in that the linearisation produced is guaranteed to have the minimum number of discontinuities, where a discontinuity is defined as an adjacent pair of commits in the output list which are not related in a direct child-parent relationship. With this patch a graph like this: a4 --- | \ \ | b4 | |/ | | a3 | | | | | a2 | | | | c3 | | | | | c2 | b3 | | | /| | b2 | | | c1 | | / | b1 a1 | | | a0 | | / root Sorts like this: = a4 | c3 | c2 | c1 ^ b4 | b3 | b2 | b1 ^ a3 | a2 | a1 | a0 = root Instead of this: = a4 | c3 ^ b4 | a3 ^ c2 ^ b3 ^ a2 ^ b2 ^ c1 ^ a1 ^ b1 ^ a0 = root A test script, t/t6000-rev-list.sh, includes a test which demonstrates that the linearisation produced by --merge-order has less discontinuities than the linearisation produced by git-rev-list without the --merge-order flag specified. To see this, do the following: cd t ./t6000-rev-list.sh cd trash cat actual-default-order cat actual-merge-order The existing behaviour of git-rev-list is preserved, by default. To obtain the modified behaviour, specify --merge-order or --merge-order --show-breaks on the command line. This version of the patch has been tested on the git repository and also on the linux-2.6 repository and has reasonable performance on both - ~50-100% slower than the original algorithm. This version of the patch has incorporated a functional equivalent of the Linus' output limiting algorithm into the merge-order algorithm itself. This operates per the notes associated with Linus' commit 337cb3fb8da45f10fe9a0c3cf571600f55ead2ce. This version has incorporated Linus' feedback regarding proposed changes to rev-list.c. (see: [PATCH] Factor out filtering in rev-list.c) This version has improved the way sort_first_epoch marks commits as uninteresting. For more details about this change, refer to Documentation/git-rev-list.txt and http://blackcubes.dyndns.org/epoch/. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-05Fix entry.c dependency and compile problemLinus Torvalds1-0/+1
Bad Linus.
2005-06-05Make fiel checkout function available to the git libraryLinus Torvalds1-1/+1
The merge stuff will want it soon, and we don't want to duplicate all the work..
2005-06-05[PATCH] rename git-rpush and git-rpull to git-ssh-push and git-ssh-pullJunio C Hamano1-3/+3
In preparation for 1.0 release, this makes the command names consistent with others in git-*-pull family. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-04Add git-shortlog perl scriptLinus Torvalds1-1/+1
Somebody finally came through - Jeff Garzik gets a gold star for writing a shortlog script for git, so that I can do nice release announcments again. I added name translations from the current kernel history (and git, for that matter). Hopefully it won't grow at nearly the same rate the BK equivalent did, since 99% of the time git records the full name already. Usage: just do git-rev-list --pretty HEAD ^LAST_HEAD | git-shortlog or, in fact, use any of the other tools (git-diff-tree, git-whatchanged etc) that use the default "pretty" commit format.
2005-06-01Add "git" and "git-log-script" helper scripts.Linus Torvalds1-2/+3
The "git" script is just shorthand: "git xyz <args>" will just execute "git-xyz-script <args>", which is useful for people used to the CVS naming convention. So "git log" will run the new git-log-script, which is just a wrapper around the new pretty-printing git-rev-list. Cheesy.
2005-05-30[PATCH] Add -O<orderfile> option to diff-* brothers.Junio C Hamano1-1/+2
A new diffcore filter diffcore-order is introduced. This takes a text file each of whose line is a shell glob pattern. Patches that match a glob pattern on an earlier line in the file are output before patches that match a later line, and patches that do not match any glob pattern are output last. A typical orderfile for git project probably should look like this: README Makefile Documentation *.h *.c Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-30Add "commit" helper scriptLinus Torvalds1-2/+3
This is meant to make raw git not hugely less usable than something like raw CVS. I want to make a 1.0 release of the plumbing, and the actual commit part was just too intimidating.
2005-05-30[PATCH] Add -B flag to diff-* brothers.Junio C Hamano1-1/+2
A new diffcore transformation, diffcore-break.c, is introduced. When the -B flag is given, a patch that represents a complete rewrite is broken into a deletion followed by a creation. This makes it easier to review such a complete rewrite patch. The -B flag takes the same syntax as the -M and -C flags to specify the minimum amount of non-source material the resulting file needs to have to be considered a complete rewrite, and defaults to 99% if not specified. As the new test t4008-diff-break-rewrite.sh demonstrates, if a file is a complete rewrite, it is broken into a delete/create pair, which can further be subjected to the usual rename detection if -M or -C is used. For example, if file0 gets completely rewritten to make it as if it were rather based on file1 which itself disappeared, the following happens: The original change looks like this: file0 --> file0' (quite different from file0) file1 --> /dev/null After diffcore-break runs, it would become this: file0 --> /dev/null /dev/null --> file0' file1 --> /dev/null Then diffcore-rename matches them up: file1 --> file0' The internal score values are finer grained now. Earlier maximum of 10000 has been raised to 60000; there is no user visible changes but there is no reason to waste available bits. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-24[PATCH] Update rename/copy similarity estimator.Junio C Hamano1-2/+3
The second round similarity estimator simply used the size of the xdelta itself to estimate the extent of damage. This patch keeps that logic to detect big insertions to terminate the check early, but otherwise looks at the generated delta in order to estimate the extent of edit more accurately. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-23Start implementing "git-apply"Linus Torvalds1-1/+1
This applies git patches (and old-style unified diffs) in the index, rather than doing it in the working directory. That allows for a lot more flexibility, and means that if a patch fails, we aren't going to mess up the working directory. NOTE! This is just the first cut at it, and right now it only parses the incoming patch, it doesn't actually apply it yet.
2005-05-22Don't care about st_dev in the index fileLinus Torvalds1-1/+3
Thomas Glanzmann points out that it doesn't work well with different clients accessing the repository over NFS - they have different views on what the "device" for the filesystem is. Of course, other filesystems may not even have stable inode numbers. But we don't care. At least for now.
2005-05-22[PATCH] Makefile: Solaris fix: call $(MAKE) instead of make for subdirectoriesThomas Glanzmann1-2/+2
Signed-off-by: Thomas Glanzmann <sithglan@stud.uni-erlangen.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-22Split up git-pull-script into separate "fetch" and "merge" phases.Linus Torvalds1-1/+1
This allows you to just fetch stuff first, inspect it, and then resolve the merge separately if everything looks good.
2005-05-22[PATCH] Diffcore updates.Junio C Hamano1-4/+5
This moves the path selection logic from individual programs to a new diffcore transformer (diff-tree still needs to have its own for performance reasons). Also the header printing code in diff-tree was tweaked not to produce anything when pickaxe is in effect and there is nothing interesting to report. An interesting example is the following in the GIT archive itself: $ git-whatchanged -p -C -S'or something in a real script' Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-21"make clean" should also clean up documentationLinus Torvalds1-0/+1
(Or, if somebody disagrees, we should have a "make distclean").
2005-05-21[PATCH] Introducing software archaeologist's tool "pickaxe".Junio C Hamano1-1/+2
This steals the "pickaxe" feature from JIT and make it available to the bare Plumbing layer. From the command line, the user gives a string he is intersted in. Using the diff-core infrastructure previously introduced, it filters the differences to limit the output only to the diffs between <src> and <dst> where the string appears only in one but not in the other. For example: $ ./git-rev-list HEAD | ./git-diff-tree -Sdiff-tree-helper --stdin -M would show the diffs that touch the string "diff-tree-helper". In real software-archaeologist application, you would typically look for a few to several lines of code and see where that code came from. The "pickaxe" module runs after "rename/copy detection" module, so it even crosses the file rename boundary, as the above example demonstrates. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-21[PATCH] Diff overhaul, adding half of copy detection.Junio C Hamano1-2/+3
This introduces the diff-core, the layer between the diff-tree family and the external diff interface engine. The calls to the interface diff-tree family uses (diff_change and diff_addremove) have not changed and will not change. The purpose of the diff-core layer is to provide an infrastructure to transform the set of differences sent from the applications, before sending them to the external diff interface. The recently introduced rename detection code has been rewritten to use the diff-core facility. When applications send in separate creates and deletes, matching ones are transformed into a single rename-and-edit diff, and sent out to the external diff interface as such. This patch also enhances the rename detection code further to be able to detect copies. Currently this happens only as long as copy sources appear as part of the modified files, but there already is enough provision for callers to report unmodified files to diff-core, so that they can be also used as copy source candidates. Extending the callers this way will be done in a separate patch. Please see and marvel at how well this works by trying out the newly added t/t4003-diff-rename-1.sh test script. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-20[PATCH] delta creationNicolas Pitre1-2/+4
This adds the ability to actually create delta objects using a new tool: git-mkdelta. It uses an ordered list of potential objects to deltafy against earlier objects in the list. A cap on the depth of delta references can be provided as well, otherwise the default is to not have any limit. A limit of 0 will also undeltafy any given object. Also provided is the beginning of a script to deltafy an entire repository. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-20[PATCH] delta checkNicolas Pitre1-1/+1
This adds knowledge of delta objects to fsck-cache and various object parsing code. A new switch to git-fsck-cache is provided to display the maximum delta depth found in a repository. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-19[PATCH] Implement git-checkout-cache -u to update stat information in the cache.Junio C Hamano1-1/+1
With -u flag, git-checkout-cache picks up the stat information from newly created file and updates the cache. This removes the need to run git-update-cache --refresh immediately after running git-checkout-cache. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-19[PATCH] Deltification library work by Nicolas Pitre.Nicolas Pitre1-2/+5
This patch adds the basic library functions to create and replay delta information. Also included is a test-delta utility to validate the code. diff-delta was based on LibXDiff written by Davide Libenzi Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-17Add silly "git-whatchanged" script.Linus Torvalds1-1/+1
It's a one-liner, but it's useful as documentation if nothing else.
2005-05-16[PATCH 4/4] Trivial test harness fixes.Junio C Hamano1-1/+1
The documentation of the test harness still refer to old numbering and also contains an obvious typo. Also "make test" should be run after making sure we have built all binaries, since test is designed to test the newly built ones. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Petr Baudis <pasky@ucw.cz>
2005-05-15[PATCH 2/3] Rename git-diff-tree-helper to git-diff-helper.Junio C Hamano1-2/+2
It used to be that diff-tree needed helper support to parse its raw output to generate diffs, but these days git-diff-* family produces the same output and the helper is not tied to diff-tree anymore. Drop "tree" from its name. This commit is done separately to record just the rename and no file content changes. The changes in the renamed files are recorded in the next commit. Signed-off-by: Junio C Hamano <junkio@cox.net> Bundled with the changes in the unrenamed files. Signed-off-by: Petr Baudis <pasky@ucw.cz>
2005-05-14Implemented make testPetr Baudis1-0/+3
make test in project root will recurse to the t/ subdirectory and run make all there.
2005-05-10Link with -lcrypto instead of -lssl when using openssl libraries.Junio C Hamano1-1/+1
Mark Allen had trouble with building GIT on his Darwin and posted a patch to link with -lcrypto instead of -lssl on Darwin. Later Daniel Barkalow suggested to change it for everybody who uses openssl, because the relevant functionality is in -lcrypto not in -lssl, and the current linking happens to work only because -lssl pulls in -lcrypto. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-09Rename environment variables.Junio C Hamano1-0/+3
H. Peter Anvin mentioned that using SHA1_whatever as an environment variable name is not nice and we should instead use names starting with "GIT_" prefix to avoid conflicts. Here is what this patch does: * Renames the following environment variables: New name Old Name GIT_AUTHOR_DATE AUTHOR_DATE GIT_AUTHOR_EMAIL AUTHOR_EMAIL GIT_AUTHOR_NAME AUTHOR_NAME GIT_COMMITTER_EMAIL COMMIT_AUTHOR_EMAIL GIT_COMMITTER_NAME COMMIT_AUTHOR_NAME GIT_ALTERNATE_OBJECT_DIRECTORIES SHA1_FILE_DIRECTORIES GIT_OBJECT_DIRECTORY SHA1_FILE_DIRECTORY * Introduces a compatibility macro, gitenv(), which does an getenv() and if it fails calls gitenv_bc(), which in turn picks up the value from old name while giving a warning about using an old name. * Changes all users of the environment variable to fetch environment variable with the new name using gitenv(). * Updates the documentation and scripts shipped with Linus GIT distribution. The transition plan is as follows: * We will keep the backward compatibility list used by gitenv() for now, so the current scripts and user environments continue to work as before. The users will get warnings when they have old name but not new name in their environment to the stderr. * The Porcelain layers should start using new names. However, just in case it ends up calling old Plumbing layer implementation, they should also export old names, taking values from the corresponding new names, during the transition period. * After a transition period, we would drop the compatibility support and drop gitenv(). Revert the callers to directly call getenv() but keep using the new names. The last part is probably optional and the transition duration needs to be set to a reasonable value. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-07Build and install git-get-tar-commit-idJunio C Hamano1-1/+2
This useful program is not build nor installed by the Makefile. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-07[PATCH] make INSTALL binary in Makefile configurable via make variableThomas Glanzmann1-2/+8
On Solaris machines gnu install called ginstall <JC> Editorial notes. I've also changed it to use $(COPTS), $(prefix), and $(bin) because I always get confused without compiling it with -O1 when I single step in gdb. The default is left as Linus shipped. Date: Sat, 7 May 2005 10:41:54 +0200 Signed-off-by: Thomas Glanzmann <sithglan@stud.uni-erlangen.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-05Split "git-pull-script" into two partsLinus Torvalds1-1/+1
Separate out the merge resolve from the actual getting of the data. Also, update the resolve phase to take advantage of the fact that we don't need to do the commit->tree object lookup by hand, since all the actors involved happily just act on a commit object these days.
2005-05-01Add git-write-blob.Junio C Hamano1-1/+2
A new command, git-write-blob, is introduced. This registers the contents of any file on the filesystem as a blob in the object database and reports its SHA1 to the standard output. To implement it, the patch promotes index_fd() from a static function in update-cache.c to extern and moves it to a library source, sha1_file.c. This command is used to update git-merge-one-file-script so that it does not smudge the work tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-01[PATCH] Add git-local-pull.Junio C Hamano1-1/+2
This adds the git-local-pull command as a smaller brother of http-pull and rpull. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-01[PATCH] Add git-apply-patch-script.Junio C Hamano1-2/+2
I said: - Stop attempting to be compatible with cg-patch, and drop (mode:XXXXXX) bits from the diff. - Do keep the /dev/null change for created and deleted case. - No "Index:" line, no "Mode change:" line, anywhere in the output. Anything that wants the mode bits and sha1 hash can do things from GIT_EXTERNAL_DIFF mechanism. Maybe document suggested usage better. This adds an example script git-apply-patch-script, that can be used as the GIT_EXTERNAL_DIFF to apply changes between two trees directly on the current work tree, like this: GIT_EXTERNAL_DIFF=git-apply-patch-script git-diff-tree -p <tree> <tree> Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30[PATCH] Split out "pull" from particular methodsDaniel Barkalow1-2/+2
The method for deciding what to pull is useful separately from any of the ways of actually fetching the objects. So split out "pull" functionality from http-pull and rpull Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30Make the date parsing accept pretty much any random crap.Linus Torvalds1-0/+3
This date parser turns line-noise into a date. Cool.
2005-04-30Rename "show-files" to "ls-files"Linus Torvalds1-2/+2
As suggested by Nicolas Pitre
2005-04-30[PATCH] Do date parsing by hand...Edgar Toernig1-2/+2
...since everything out there is either strange (libc mktime has issues with timezones) or introduces unnecessary dependencies for people (libcurl). This goes back to the old date parsing, but moves it out into a file of its own, and does the "struct tm" to "seconds since epoch" handling by hand. I grepped through the tz-database and it seems there's one "country" left that has non-60-minute DST: Lord Howe Island. All others dropped that before 1970.