Commit Graph

271 Commits

Author SHA1 Message Date
Johannes Schindelin
f2d6a25627 Support custom build options in config.mak
With this patch, it is possible to store configuration options like
NO_CURL=YesPlease or NO_OPENSSL=YesPlease into a file named
config.mak, which will be included in the Makefile.

[jc: redone with suggestion from Daniel Barkalow to just use -include]

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-11 15:22:47 -07:00
Linus Torvalds
17712991a5 Add ".git/config" file parser
This is a first cut at a very simple parser for a git config file.

The format of the file is a simple ini-file like thing, with simple
variable/value pairs. You can (and should) make the variables have a
simple single-level scope, ie a valid file looks something like this:

	#
	# This is the config file, and
	# a '#' or ';' character indicates
	# a comment
	#

	; core variables
	[core]
		; Don't trust file modes
		filemode = false

	; Our diff algorithm
	[diff]
		external = "/usr/local/bin/gnu-diff -u"
		renames = true

which parses into three variables: "core.filemode" is associated with the
string "false", and "diff.external" gets the appropriate quoted value.

Right now we only react to one variable: "core.filemode" is a boolean that
decides if we should care about the 0100 (user-execute) bit of the stat
information. Even that is just a parsing demonstration - this doesn't
actually implement that st_mode compare logic itself.

Different programs can react to different config options, although they
should always fall back to calling "git_default_config()" on any config
option name that they don't recognize.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10 16:31:08 -07:00
Junio C Hamano
b12bbd5986 Merge branch 'fixes'
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10 16:03:43 -07:00
Junio C Hamano
4769948afe Deal with $(bindir) and friends with whitespaces.
... using HPA's shellquote macro.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10 13:51:52 -07:00
Junio C Hamano
5fb41e8abf OpenBSD needs the strcasestr replacement.
Noticed by Randal L. Schwartz.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10 11:51:11 -07:00
Junio C Hamano
d5b0c9ea17 Merge branch 'fixes'
with minor hand resolving on git-tag.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-09 19:16:33 -07:00
Junio C Hamano
f7c153431b Makefile: avoid error message from 'uname -o'
The platform specific tweaking part was using 'uname -o' which
is not always available.  Squelch error message from it.

It was suggested to chain the if..else, but I chose not to, because
maintaining the nested if..else if..else..endif endif to match is a
pain.  If we had "elif", things would have been different, though.
While we are at it, try not to invoke 'uname -s' for each platform
candidate.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-09 12:55:49 -07:00
Kai Ruemmler
d2b8593fd3 make $prefix available for sub-makefiles
exports $prefix and makes Documentation/Makefile following it also.

Signed-off-by: Kai Ruemmler <kai.ruemmler@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-08 15:54:37 -07:00
Johannes Schindelin
730d48a2ef [PATCH] If NO_MMAP is defined, fake mmap() and munmap()
Since some platforms do not support mmap() at all, and others do only just
so, this patch introduces the option to fake mmap() and munmap() by
malloc()ing and read()ing explicitely.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
2005-10-08 15:54:36 -07:00
Junio C Hamano
e1e9c25466 Give proper prototype to gitstrcasestr.
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-08 14:54:41 -07:00
Junio C Hamano
d1c5f2a42d Add git-am, applymbox replacement.
It reorganizes the code and also has saner command line options
syntax.  Unlike git-applymbox, it can take more than one mailbox
file from the command line, as well as reading from the standard
input when '-' is specified.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-07 03:44:18 -07:00
Junio C Hamano
3ff8cbeda6 Record which tree the patch applies to.
Also note which version of GIT produced the patch.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-04 17:04:45 -07:00
Junio C Hamano
4514385edd On Cygwin, use symbolic ref, not a symbolic link, to express .git/HEAD
H. Peter Anvin says that Samba "promotes" symlinks to hardlinks while
Cygwin itself uses .lnk files to emulate symlinks.  Avoid using symbolic
link for .git/HEAD on Cygwin.

This does not help the symlinks recorded in trees as user data, but
at least we do not use them for our own bookkeeping.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-03 19:13:20 -07:00
Junio C Hamano
c8c5b21a37 [PATCH] Merging the Cygwin changes
Fix mismerge typo.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-03 16:29:48 -07:00
Peter Anvin
79a9d8ea0d Merge with master.kernel.org:/pub/scm/git/git.git 2005-10-03 12:04:44 -07:00
Junio C Hamano
baaac6a714 Post 0.99.8 master branch
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-02 16:37:27 -07:00
Junio C Hamano
91dd674e30 GIT 0.99.8
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-02 16:07:29 -07:00
Junio C Hamano
0842acff57 Customize git command for installations that lack certain commands.
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 00:20:45 -07:00
Han Boetes
18c5a52537 [PATCH] git on OpenBSD
iconv is installed in /usr/local.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-02 00:00:53 -07:00
Junio C Hamano
455a7f3275 More portability.
- 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-01 23:19:48 -07:00
Junio C Hamano
8098a178b2 Add git-symbolic-ref
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-10-01 23:19:33 -07:00
H. Peter Anvin
039c6f162a Better handling of exec extension in the git wrapper script 2005-09-30 11:02:26 -07:00
H. Peter Anvin
2f29dd5218 Change $(X) -> $X to be less annoying. 2005-09-30 10:46:25 -07:00
H. Peter Anvin
300b4801b7 Merge with master.kernel.org:/pub/scm/git/git.git 2005-09-30 10:44:21 -07:00
Junio C Hamano
894a8a8b1b Still installing the old command names.
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-30 00:27:11 -07:00
hpa
fef1ef8e1b git-http-fetch needs $(X) 2005-09-29 10:38:26 -07:00
H. Peter Anvin
bb8c91d617 Just explicitly add $(X) to most programs. 2005-09-28 23:31:18 -07:00
Peter Anvin
a23cd8ece7 Handle Cygwin .exe extensions 2005-09-28 19:08:37 -07:00
Peter Anvin
dc4afa57ce Remove *.exe for Cygwin's benefit 2005-09-28 18:00:24 -07:00
Peter Anvin
6573faff34 NO_IPV6 support for git daemon 2005-09-28 17:26:44 -07:00
hpa
49744d63e9 Call it NO_IPV6 rather than hard-coding __CYGWIN__ 2005-09-28 16:52:21 -07:00
hpa
1775451793 Options to compile on Cygwin 2005-09-28 16:37:37 -07:00
Peter Eriksen
edde7a8b53 [PATCH] Make the test more shell generic and fix missing Solaris find option
This is from Peter Eriksen, but further fixed.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-27 00:16:39 -07:00
Linus Torvalds
66bf85a462 [PATCH] Add "git-update-ref" to update the HEAD (or other) ref
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-25 16:18:25 -07:00
Junio C Hamano
a55797672d Clean generated files a bit more.
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-24 23:48:29 -07:00
Junio C Hamano
cf408cb4a0 Stop installing the backward compatible symlinks.
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-24 23:42:34 -07:00
Junio C Hamano
d66189e2c9 Use 0.99.7.GIT as version between 0.99.7 and 0.99.8
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-24 14:58:57 -07:00
Junio C Hamano
229a7ed7ab Solaris: give a bit more built-in defaults.
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 11:26:22 -07:00
Patrick Mauritz
6d9bbc50a3 [PATCH] CURLDIR in Makefile
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-24 11:26:22 -07:00
Junio C Hamano
c8b48ba476 Prettyprint octopus merge message.
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-22 18:09:07 -07:00
Junio C Hamano
5cfcd07c93 Retire diff-helper.
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-22 01:54:13 -07:00
Junio C Hamano
9dcc829fe1 Retire rev-tree.
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-22 01:54:12 -07:00
Junio C Hamano
0fe51391a8 Retire git-export.
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-22 01:54:12 -07:00
Nicolas Pitre
7c6ef2f214 [PATCH] ARM optimized SHA1 implementation
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-20 18:10:00 -07:00
Junio C Hamano
343d35c916 Ship our own copy of subprocess.py
so people without the latest Python could run merge-recursive.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-19 19:47:54 -07:00
Linus Torvalds
ef34af24dc [PATCH] strcasestr compatibility replacement
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-19 08:49:39 -07:00
Junio C Hamano
8ac93bc98f Merge branch 'master' of . 2005-09-18 01:18:15 -07:00
Junio C Hamano
5a90d4ac1a [PATCH] getdomainname should be usable on SunOS with -lnsl
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-17 11:57:50 -07:00
Junio C Hamano
f71a69ab05 Be more backward compatible with git-ssh-{push,pull}.
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-15 14:56:37 -07:00
Junio C Hamano
0f56479d73 Retire info/rev-cache
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 12:46:31 -07:00