aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* Clean-up output from "git show-branch" and document it.Junio C Hamano2005-08-22
| | | | | | | | 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>
* [PATCH] Add 'git show-branch'.Junio C Hamano2005-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [PATCH] Make "git diff" work inside relative subdirectoriesLinus Torvalds2005-08-16
| | | | | | | | | | | | | | | | 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>
* Add git-show-branches-scriptJunio C Hamano2005-08-15
| | | | | | | | | | | | 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>
* Make tools/ directory first-class citizen.Junio C Hamano2005-08-12
| | | | | | | | 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>
* [PATCH] Unify Makefile indentationPetr Baudis2005-08-12
| | | | | | | | | | | 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>
* [PATCH] Use $DESTDIR instead of $destPetr Baudis2005-08-12
| | | | | | | | $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>
* Make CFLAGS overridable from make command line.Pavel Roskin2005-08-12
| | | | | | | | | | | | | | | | | | | | | | 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>
* Clean generated files a bit more, to cope with Debian build droppings.Junio C Hamano2005-08-12
| | | | Also attempt to build a source package for debian.
* Clean generated deb files.Junio C Hamano2005-08-11
| | | | | | Do not forgot that we have a separate git-tk package these days. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge with master.Junio C Hamano2005-08-10
|\ | | | | | | | | | | | | | | | | | | This merges commit c35a7b8d806317dc1762e36561cbd31c2530dd9c from master into our head commit edee414c3e5a546aae3dd1529f397df949713305 Sincerely, jit-merge command.
| * git-revert: revert an existing commit.Junio C Hamano2005-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge with master.Junio C Hamano2005-08-09
|\ \ | |/ | | | | | | | | | | | | | | | | This merges commit f10e0e0b18c8e2e69535e7380fb3c1f9b097cfda from master into our head commit c3958a7926ab20b90fe0767580b466698477f5b6 Sincerely, jit-merge command.
| * Downgrade git-send-email-scriptJunio C Hamano2005-08-09
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge with master.Junio C Hamano2005-08-08
|\ \ | |/ | | | | | | | | | | | | | | | | This merges commit 3c4e8a636f4de3668b24d0020df731cdc78ae6e9 from master into our head commit 80f45687f44b6258b0eacae6b1ae15e3ad4a6552 Sincerely, jit-merge command.
| * Makefile dependency fix.Junio C Hamano2005-08-08
| | | | | | | | | | | | | | Johannes Schindelin noticed that recent Makefile updates were too eager to loosen dependencies. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Fix build rules for debian package.Junio C Hamano2005-08-06
| | | | | | | | | | | | | | 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>
* | GIT 0.99.4 (release candidate)Junio C Hamano2005-08-06
|/ | | | | | | | | | | | | 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>
* Redo the templates generation and installation.Junio C Hamano2005-08-06
| | | | | | | | | | | 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>
* Update get_sha1() to grok extended format.Junio C Hamano2005-08-05
| | | | | | | | | | | | | 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>
* Retire check-files.Junio C Hamano2005-08-03
| | | | | | | | | | | | 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>
* Install sample hooksJunio C Hamano2005-08-03
| | | | | | | | | 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>
* [PATCH] Add git-send-email-script - tool to send emails from ↵Ryan Anderson2005-08-02
| | | | | | | | | | | | | | | | | | 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>
* Clean t/trash upon "make clean" as well.Junio C Hamano2005-08-02
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* GIT 0.99.3v0.99.3Junio C Hamano2005-08-01
| | | | | | | | | | 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>
* Retire git-fetch-dumb-http and missing-revsJunio C Hamano2005-08-01
| | | | | | | 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>
* [PATCH] Added hook in git-receive-packJosef Weidendorfer2005-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add a stupid "count objects" script.Junio C Hamano2005-07-31
| | | | | | | | 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>
* Fetch from a packed repository on dumb servers.Junio C Hamano2005-07-31
| | | | | | | | | | | | 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>
* [PATCH] add NO_CURL option to the MakefileJohannes Schindelin2005-07-30
| | | | | | | | | | | 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>
* [PATCH] Making it easier to find which change introduced a bugLinus Torvalds2005-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* NO_OPENSSL should really mean no openssl.Junio C Hamano2005-07-30
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Fix typo in recent Makefile cleanup.Junio C Hamano2005-07-29
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] Build commands through object filesPetr Baudis2005-07-29
| | | | | | | | | | | | | 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>
* [PATCH] Support for NO_OPENSSLPetr Baudis2005-07-29
| | | | | | | | | | | | | | | | | 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>
* [PATCH] Reorder Makefile rulesPetr Baudis2005-07-29
| | | | | | | | | 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>
* [PATCH] Remove the explicit Makefile dependencies descriptionPetr Baudis2005-07-29
| | | | | | | | | | | 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>
* [PATCH] Improve the compilation-time settings interfacePetr Baudis2005-07-29
| | | | | | | | | | | | | | | | 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>
* [PATCH] socklen_t needs to be defined and libssl to be linked on old Mac OS XJohannes Schindelin2005-07-29
| | | | | | | | | | | | | | | | 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>
* [PATCH] Add git-request-pull-script, a short script that generates a summary ↵Ryan Anderson2005-07-27
| | | | | | | | | 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>
* Name it 0.99.2v0.99.2Junio C Hamano2005-07-26
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Add a "git rename" to help with - surprise surprise - renamesLinus Torvalds2005-07-23
| | | | | | | | | | | | | | | | 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..
* [PATCH] Support cloning packed repo from dumb http servers.Junio C Hamano2005-07-23
| | | | | | | | | 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>
* [PATCH] Add update-server-info.Junio C Hamano2005-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [PATCH] git-ls-remote: show and optionally store remote refs.Junio C Hamano2005-07-23
| | | | | | | | | | | | | 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>
* [PATCH] git-peek-remote: show tags and heads from a remote repository.Junio C Hamano2005-07-23
| | | | | | | | | | | | 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>
* [PATCH] Install tools with "make install-tools".Junio C Hamano2005-07-22
| | | | | | | | | 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>
* [PATCH] Install git-verify-tag-scriptEric W. Biederman2005-07-22
| | | | | | 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>
* [PATCH] fetch/pull: short-hand notation for remote repositories.Junio C Hamano2005-07-16
| | | | | | | | | | | | | | | | 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>
* Ahh, the heady days of 0.99 patchfilesv0.99.1Linus Torvalds2005-07-15
| | | | | | | | | | | | | | | 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.