Brian Gernhardt [Mon, 23 Nov 2009 17:33:42 +0000 (12:33 -0500)]
t/gitweb-lib: Split HTTP response with non-GNU sed
Recognizing \r in a regex is something GNU sed will do, but other sed
implementation's won't (e.g. BSD sed on OS X). Instead of two sed
invocations, use a single Perl script to split output into headers
and body.
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mark Rada [Sat, 7 Nov 2009 15:13:29 +0000 (16:13 +0100)]
gitweb: Smarter snapshot names
Teach gitweb how to produce nicer snapshot names by only using the
short hash id. If clients make requests using a tree-ish that is not
a partial or full SHA-1 hash, then the short hash will also be appended
to whatever they asked for. If clients request snapshot of a tag
(which means that $hash ('h') parameter has 'refs/tags/' prefix),
use only tag name.
Update tests cases in t9502-gitweb-standalone-parse-output.
Gitweb uses the following format for snapshot filenames:
<sanitized project name>-<version info>.<snapshot suffix>
where <sanitized project name> is project name with '.git' or '/.git'
suffix stripped, unless '.git' is the whole project name. For
snapshot prefix it uses:
<sanitized project name>-<version info>/
as compared to <sanitized project name>/ before (without version info).
Current rules for <version info>:
* if 'h' / $hash parameter is SHA-1 or shortened SHA-1, use SHA-1
shortened to to 7 characters
* otherwise if 'h' / $hash parameter is tag name (it begins with
'refs/tags/' prefix, use tag name (with 'refs/tags/' stripped
* otherwise if 'h' / $hash parameter starts with 'refs/heads/' prefix,
strip this prefix, convert '/' into '.', and append shortened SHA-1
after '-', i.e. use <sanitized hash>-<shortened sha1>
Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jakub Narebski [Sat, 7 Nov 2009 15:13:28 +0000 (16:13 +0100)]
gitweb: Document current snapshot rules via new tests
Add t9502-gitweb-standalone-parse-output test script, which runs
gitweb as a CGI script from the commandline and checks that it
produces the correct output.
Currently this test script contains only tests of snapshot naming
(proposed name of snapshot file) and snapshot prefix (prefix of files
in the archive / snapshot). It defines and uses 'tar' snapshot
format, without compression, for easy checking of snapshot prefix.
Testing is done using check_snapshot function.
Gitweb uses the following format for snapshot filenames:
<sanitized project name>-<hash parameter><snapshot suffix>
where <sanitized project name> is project name with '.git' or '/.git'
suffix stripped, unless '.git' is the whole project name. For
snapshot prefix it uses simply:
<sanitized project name>/
Disadvantages of current snapshot rules:
* There exists convention that <basename>.<suffix> archive unpacks to
<basename>/ directory (<basename>/ is prefix of archive). Gitweb
does not respect it
* Snapshot links generated by gitweb use full SHA-1 id as a value of
'h' / $hash parameter. With current rules it leads to long file
names like e.g. repo-
1005c80cc11c531d327b12195027cbbb4ff9e3cb.tgz
* For handcrafted URLs, where 'h' / $hash parameter is a symbolic
'volatile' revision name such as "HEAD" or "next" snapshot name
doesn't tell us what exact version it was created from
* Proposed filename in Content-Disposition header should not contain
any directory path information, which means that it should not
contain '/' (see RFC2183)... which means that snapshot naming is
broken for $hash being e.g. hirearchical branch name such as
'xx/test'
This would be improved in next commit.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jakub Narebski [Thu, 29 Oct 2009 22:07:41 +0000 (23:07 +0100)]
t/gitweb-lib.sh: Split gitweb output into headers and body
Save HTTP headers into gitweb.headers, and the body of message into
gitweb.body in gitweb_run()
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mark Rada [Sat, 26 Sep 2009 17:46:08 +0000 (13:46 -0400)]
gitweb: check given hash before trying to create snapshot
Makes things nicer in cases when you hand craft the snapshot URL but
make a typo in defining the hash variable (e.g. netx instead of next);
you will now get an error message instead of a broken tarball.
Tests for t9501 are included to demonstrate added functionality.
Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Junio C Hamano [Tue, 29 Sep 2009 06:40:08 +0000 (23:40 -0700)]
builtin-mailinfo.c: check error status from rewind and ftruncate
A recent "cut at scissors" implementation rewinds and truncates
the output file to store the message when it sees a scissors mark,
but it did not check if these library calls succeeded.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
[sp: Use fseek as rewind returns void]
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Sebastian Schuberth [Mon, 28 Sep 2009 11:34:21 +0000 (13:34 +0200)]
Make just opening the generated MSVC solution file not modify it
The format of the generated MSVC solution file is fixed in a way that
just opening it in Visual Studio and immediately closing it again
without performing any modifications does not trigger a prompt to save
the solution file. This behavior was caused by several minor
incompatibilities between the generated file and what Visual Studio
2008 expected, so Visual Studio transparently fixed the file format,
marking it internally as modified.
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Sebastian Schuberth [Mon, 28 Sep 2009 11:34:20 +0000 (13:34 +0200)]
Make generated MSVC solution file open from Windows Explorer
In order to be able to open the generated solution file by double-
clicking it in Windows Explorer, all project files need to use DOS
line-endings and a comment about the Visual Studio version needs to
be added to the header of the solution file. This also fixes the icon
that is displayed for the solution file in Windows Explorer.
Note that opening the solution file from a running instance of Visual
Studio already worked before.
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Michael Wookey [Mon, 28 Sep 2009 10:46:52 +0000 (20:46 +1000)]
generators/vcproj.pm: remove UNICODE from build
Defining UNICODE for MSVC IDE builds results in certain Win32 WIDE
API's receiving ANSI strings. The result of which is an invalid use
of the API and will end in either data corruption or an application
crash.
Prevent the use of WIDE API's when building with the MSVC IDE for
compatibility with msysGit.
Signed-off-by: Michael Wookey <michaelwookey@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Jim Meyering [Tue, 29 Sep 2009 05:42:25 +0000 (07:42 +0200)]
typo fix: Directory `...' exist, ...: s/exist/exists/
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Brandon Casey [Mon, 28 Sep 2009 14:56:00 +0000 (09:56 -0500)]
Documentation/git-gc.txt: default --aggressive window is 250, not 10
The default --aggressive window has been 250 since
1c192f34 "gc
--aggressive: make it really aggressive", released in git v1.6.3.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Frederik Schwarzer [Mon, 28 Sep 2009 08:25:55 +0000 (10:25 +0200)]
Correct minor typo in post-receive hook template
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Miklos Vajna [Sat, 26 Sep 2009 23:15:09 +0000 (01:15 +0200)]
git branch -D: give a better error message when lockfile creation fails
Previously the old error message just told the user that it was not
possible to delete the ref from the packed-refs file. Give instructions
on how to resolve the problem.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Andreas Schwab [Fri, 25 Sep 2009 18:44:44 +0000 (20:44 +0200)]
parse-opt: ignore negation of OPT_NONEG for ambiguity checks
parse_long_opt always matches both --opt and --no-opt for any option
"opt", and only get_value checks whether --no-opt is actually valid.
Since the options for git branch contains both "no-merged" and "merged"
there are two matches for --no-merge, but no exact match. With this
patch the negation of a NONEG option is rejected earlier, but it changes
the error message from "option `no-opt' isn't available" to "unknown
option `no-opt'".
[jk: added test]
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Nicolas Pitre [Sat, 26 Sep 2009 03:54:42 +0000 (23:54 -0400)]
make 'git clone' ask the remote only for objects it cares about
Current behavior of 'git clone' when not using --mirror is to fetch
everything from the peer, and then filter out unwanted refs just before
writing them out to the cloned repository. This may become highly
inefficient if the peer has an unusual ref namespace, or if it simply
has "remotes" refs of its own, and those locally unwanted refs are
connecting to a large set of objects which becomes unreferenced as soon
as they are fetched.
Let's filter out those unwanted refs from the peer _before_ asking it
what refs we want to fetch instead, which is the most logical thing to
do anyway.
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Yakov Lerner [Fri, 25 Sep 2009 22:10:21 +0000 (15:10 -0700)]
send-email: fix obscure error when encryption=tls and smtp cannot connect
When encryption=tls and we cannot connect to the SMTP server,
git-send-email was printing an obtuse perl error:
Can't call method "command" on an undefined value
at git-send-email line 927.
This can occur when smtp host or port is misspelled, or the network
is down, and encryption has been set to tls.
Instead we expect some familiar "Cannot connect to SERVER:PORT"
message. Fix it to print normal "smtp can't connect" diagnostics.
Signed-off-by: Yakov Lerner <iler.ml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
SZEDER Gábor [Thu, 24 Sep 2009 12:23:15 +0000 (14:23 +0200)]
bash: teach 'git checkout' options
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Brandon Casey [Thu, 24 Sep 2009 18:21:03 +0000 (13:21 -0500)]
perl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR
It appears that ExtUtils::MakeMaker versions older than 6.11 do not
implement the DESTDIR mechanism. So add a test to the generated perl.mak
to detect when DESTDIR is used along with a too old ExtUtils::MakeMaker and
abort with a message suggesting the use of NO_PERL_MAKEMAKER.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Junio C Hamano [Sun, 13 Sep 2009 20:38:48 +0000 (13:38 -0700)]
pull: Clarify "helpful" message for another corner case
When the remote branch we asked for merging did not exist in the set of
fetched refs, we unconditionally hinted that it was because of lack of
configuration. It is not necessarily so, and risks sending users for a
wild goose chase.
Make sure to check if that is indeed the case before telling a wild guess
to the user.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thiago Farina [Tue, 22 Sep 2009 23:48:06 +0000 (19:48 -0400)]
Update "describe" documentation to match reality
A sample "git describe -h" did not match what the program actually says.
Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Tue, 15 Sep 2009 10:21:45 +0000 (12:21 +0200)]
bash: teach 'git reset --patch'
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Tue, 15 Sep 2009 10:21:44 +0000 (12:21 +0200)]
bash: update 'git stash' completion
This update adds 'git stash (apply|pop) --quiet' and all options known
to 'git stash save', and handles the DWIMery from
3c2eb80f (stash:
simplify defaulting to "save" and reject unknown options, 2009-08-18).
Care is taken to avoid offering subcommands in the DWIM case.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Tue, 15 Sep 2009 10:21:43 +0000 (12:21 +0200)]
bash: rename __git_find_subcommand() to __git_find_on_cmdline()
__git_find_subcommand() was originally meant to check whether
subcommands are already present on the command line. But the code is
general enough to be used for checking the presence of command line
options as well, and the next commit will use it for that purpose, so
let's give it a more general name.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 21 Sep 2009 19:44:05 +0000 (12:44 -0700)]
pay attention to DESTDIR when building with NO_PERL_MAKEMAKER
Building with prefix=/some/where and temporarily installing it to
elsewhere for tar'ing up is done with:
make prefix=/some/where
make prefix=/some/where DESTDIR=/else/where install
Make handcrafted perl/perl.mak without NO_PERL_MAKEMAKER honour DESTDIR.
Ancient ExtUtils::MakeMaker (pre 6.11?) has the same issue, but recent
versions of Perl ships with at leat 6.17; this patch does not address that
issue.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jim Meyering [Mon, 21 Sep 2009 11:00:34 +0000 (13:00 +0200)]
pre-commit.sample: add comment re tr portability; fix grammar
Add a comment explaining why square brackets around a tr range
are not only ok, but actually required in this case.
Correct spelling and grammar.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 22 Sep 2009 01:14:12 +0000 (18:14 -0700)]
Update Release Notes to 1.6.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 21 Sep 2009 07:34:58 +0000 (09:34 +0200)]
test-genrandom: ensure stdout is set to _O_BINARY on Windows
Commit
a6ca8c62 (Set _O_BINARY as default fmode for both MinGW and MSVC)
removed the definition of _CRT_fmode from mingw.c. Before this commit,
since test-genrandom is linked against libgit.a, the MinGW process
initialization code would pick up that definition of _CRT_fmode, which was
initialized to _O_BINARY. After this commit, however, text mode is used
for std(in|out|err) because it is the default in absence of _CRT_fmode.
In order to fix that, we must use git-compat-util.h, which overrides
main() to set the mode to binary.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 21 Sep 2009 06:47:52 +0000 (23:47 -0700)]
Merge git://git.kernel.org/pub/scm/gitk/gitk
* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Work around leftover temporary save file
gitk: Show diff of commits at end of compare-commits output
gitk: Update Swedish translation (280t0f0u)
Pat Thoyts [Tue, 15 Sep 2009 09:26:30 +0000 (10:26 +0100)]
gitk: Work around leftover temporary save file
If a file exists and is hidden on Windows the Tcl open command will
fail as the attributes provided in the CREAT call fail to match those
of the existing file. Forcing removal of the temporary file before we
begin solves any problems caused by previous failures to save the
application settings. An alternative would be to remove the hidden
attribute before calling 'open'.
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Junio C Hamano [Sun, 20 Sep 2009 19:13:47 +0000 (12:13 -0700)]
Merge branch 'maint'
* maint:
push: Correctly initialize nonfastforward in transport_push.
Matthieu Moy [Sun, 20 Sep 2009 17:33:20 +0000 (19:33 +0200)]
push: Correctly initialize nonfastforward in transport_push.
The variable is assigned unconditionally in print_push_status, but
print_push_status is not reached by all codepaths. In particular, this
fixes a bug where "git push ... nonexisting-branch" was complaining about
non-fast forward.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:31 +0000 (10:20 +0200)]
Tag GIT_VERSION when Git is built with MSVC
This may help us debug issues on Windows, as we now can build Git
natively on Windows with both MinGW and MSVC.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:30 +0000 (10:20 +0200)]
Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
These scripts generate projects for the MSVC IDE (.vcproj files) or
QMake (.pro files), based on the output of a 'make -n MSVC=1 V=1' run.
This enables us to simply do the necesarry changes in the Makefile, and you
can update the other buildsystems by regenerating the files. Keeping the
other buildsystems up-to-date with main development.
The generator system is designed to easily drop in pm's for other
buildsystems as well, if someone has an itch. However, the focus has been
Windows development, so the 'engine' might need patches to support any
platform.
Also add some .gitignore entries for MSVC files.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:29 +0000 (10:20 +0200)]
Add README for MSVC build
Based on original README patch from Frank Li, describe the steps
to build git with VS2008 (aka MSVC).
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:28 +0000 (10:20 +0200)]
Add MSVC to Makefile
Enable MSVC builds with GNU Make by simply calling
make MSVC=1
(Debug build possible by adding DEBUG=1 as well)
Two scripts, clink.pl and lib.pl, are used to convert certain GCC
specific command line options into something MSVC understands.
By building for MSVC with GNU Make, we can ensure that the MSVC
port always follows the latest code, and does not lag behind due
to unmaintained NMake Makefile or IDE projects.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:27 +0000 (10:20 +0200)]
Define strncasecmp and ftruncate for MSVC
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:26 +0000 (10:20 +0200)]
Make usage of windows.h lean and mean
Centralize the include of windows.h in git-compat-util.h, turn on
WIN32_LEAN_AND_MEAN to avoid including plenty of other header files
which is not needed in Git. Also ensure we load winsock2.h first,
so we don't load the older winsock definitions at a later stage,
since they contain duplicate definitions.
When moving windows.h into git-compat-util.h, we need to protect
the definition of struct pollfd in mingw.h, since this file is used
by both MinGW and MSVC, and the latter defines this struct in
winsock2.h.
We need to keep the windows.h include in compat/win32.h, since its
shared by both MinGW and Cygwin, and we're not touching Cygwin in
this commit. The include in git-compat-util.h is protected with an
ifdef WIN32, which is not the case when compiling for Cygwin.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:25 +0000 (10:20 +0200)]
Add platform files for porting to MSVC
Add msvc.c and msvc.h to build git under MSVC.
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:24 +0000 (10:20 +0200)]
Add MinGW header files to build git with MSVC
Added the header files dirent.h, unistd.h and utime.h
Add alloca.h, which simply includes malloc.h, which defines alloca().
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:23 +0000 (10:20 +0200)]
Add empty header files for MSVC port
MSVC lacks many of the header files included by git-compat-util.h; add
blank header files for these instead of going ifdef crazy.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:22 +0000 (10:20 +0200)]
Test for WIN32 instead of __MINGW32_
The code which is conditional on MinGW32 is actually conditional on Windows.
Use the WIN32 symbol, which is defined by the MINGW32 and MSVC environments,
but not by Cygwin.
Define SNPRINTF_SIZE_CORR=1 for MSVC too, as its vsnprintf function does
not add NUL at the end of the buffer if the result fits the buffer size
exactly.
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:21 +0000 (10:20 +0200)]
Fix __stdcall placement and function prototype
MSVC requires __stdcall to be between the functions return value and the
function name, and that the function pointer type is in the form of
return_type (WINAPI *function_name)(arguments...)
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:20 +0000 (10:20 +0200)]
Set _O_BINARY as default fmode for both MinGW and MSVC
MinGW set the _CRT_fmode to set both the default fmode and _O_BINARY on
stdin/stdout/stderr. Rather use the main() define in mingw.h to set this
for both MinGW and MSVC.
This will ensure that a MinGW and MSVC build will handle input and output
identically.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:19 +0000 (10:20 +0200)]
Change regerror() declaration from K&R style to ANSI C (C89)
The MSVC headers typedef errcode as int, and thus confused the compiler in
the K&R style definition. ANSI style deconfuses it.
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:18 +0000 (10:20 +0200)]
Add include guards to compat/win32.h
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Li [Wed, 16 Sep 2009 08:20:17 +0000 (10:20 +0200)]
Avoid declaration after statement
MSVC does not understand this C99 style.
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thiago Farina [Fri, 18 Sep 2009 19:11:52 +0000 (12:11 -0700)]
pack-objects: remove SP at the end of usage string
These spaces immediately before the end of lines are unnecessary.
While at it, instead of using a single string literal with backslashes
at end of each line, split the lines into individual string literals
and tell the compiler to concatenate them.
Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thiago Farina [Thu, 17 Sep 2009 17:20:53 +0000 (13:20 -0400)]
Update the usage bundle string.
"git bundle -h" gives a single long line that is hard to read. Rewrite it
into a multi-line format similar to the one used by other commands, e.g
"git stash -h".
Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Thu, 17 Sep 2009 07:21:02 +0000 (09:21 +0200)]
cvs: initialize empty password
If we do not read a password from the command line, and there are no
passwords stored in .cvspass, we have to initialize the password with
just "A".
This fixes a regression introduced by
3fb9d582 (Do not scramble
password read from .cvspass).
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Sep 2009 22:04:21 +0000 (15:04 -0700)]
Merge 1.6.4.4 in
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Sep 2009 21:53:26 +0000 (14:53 -0700)]
GIT 1.6.4.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Sep 2009 21:45:18 +0000 (14:45 -0700)]
Merge branch 'jc/maint-unpack-objects-strict' into maint
* jc/maint-unpack-objects-strict:
Fix "unpack-objects --strict"
Conflicts:
builtin-unpack-objects.c
Junio C Hamano [Wed, 16 Sep 2009 21:27:08 +0000 (14:27 -0700)]
Merge branch 'tf/diff-whitespace-incomplete-line' into maint
* tf/diff-whitespace-incomplete-line:
xutils: Fix xdl_recmatch() on incomplete lines
xutils: Fix hashing an incomplete line with whitespaces at the end
Junio C Hamano [Wed, 16 Sep 2009 21:26:56 +0000 (14:26 -0700)]
Merge branch 'jk/maint-1.6.3-checkout-unborn' into maint
* jk/maint-1.6.3-checkout-unborn:
checkout: do not imply "-f" on unborn branches
Junio C Hamano [Wed, 16 Sep 2009 21:26:40 +0000 (14:26 -0700)]
Merge branch 'jc/maint-checkout-index-to-prefix' into maint
* jc/maint-checkout-index-to-prefix:
check_path(): allow symlinked directories to checkout-index --prefix
Junio C Hamano [Mon, 14 Sep 2009 21:48:27 +0000 (14:48 -0700)]
Merge branch 'maint'
* maint:
http.c: avoid freeing an uninitialized pointer
Junio C Hamano [Mon, 14 Sep 2009 21:48:20 +0000 (14:48 -0700)]
Merge branch 'rc/maint-http-no-head-pack-check' into maint
* rc/maint-http-no-head-pack-check:
http.c: avoid freeing an uninitialized pointer
Junio C Hamano [Mon, 14 Sep 2009 21:48:15 +0000 (14:48 -0700)]
http.c: avoid freeing an uninitialized pointer
An earlier
59b8d38 (http.c: remove verification of remote packs) left
the variable "url" uninitialized; "goto cleanup" codepath can free it
which is not very nice.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Heiko Voigt [Mon, 14 Sep 2009 08:49:01 +0000 (10:49 +0200)]
web--browse: fix Mac OS X GUI detection for 10.6
Since OS X 10.6 the variable $SECURITYSESSIONID does not exist anymore,
so lets look for the $TERM_PROGRAM variable as backup.
Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Heiko Voigt [Mon, 14 Sep 2009 08:47:06 +0000 (10:47 +0200)]
remove logical typo in documentation of sample update hook
Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Mon, 14 Sep 2009 06:41:16 +0000 (02:41 -0400)]
Nicolas Pitre has a new email address
Due to problems at cam.org, my nico@cam.org email address is no longer
valid. From now on, nico@fluxnic.net should be used instead.
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Dmitry Potapov [Sun, 13 Sep 2009 20:17:01 +0000 (00:17 +0400)]
git-archive: infer output format from filename when unspecified
A command line
$ git archive -o my-v2.0.zip v2.0
almost certainly wants the output in zip format, even though it does not
specify any --format option.
When --format is not given, but output filename is, try to infer what
format is requested from the filename extension. Currently this code only
knows about '.zip'. When the format is unspecified and the filename does
not tell us, the output will be in 'tar' format as before.
Of course, an explicit --format will not trigger this guesswork.
Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Todd Zullinger [Fri, 11 Sep 2009 23:23:45 +0000 (19:23 -0400)]
completion: Replace config --list with --get-regexp
James Bardin noted that the completion spewed warnings when no git config
file is present. This is likely a bug to be fixed in git config, but it's
also good to simplify the completion code by using the --get-regexp option
as Jeff King pointed out.
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Trivially-acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Dmitry Potapov [Sun, 13 Sep 2009 12:05:52 +0000 (16:05 +0400)]
git-archive: add '-o' as a alias for '--output'
The '-o' option is commonly used in many tools to specify the output file.
Typing '--output' every time is a bit too long to be a practical alternative
to redirecting output. But specifying the output name has the advantage of
making possible to guess the desired output format by filename extension.
Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Sun, 13 Sep 2009 10:49:45 +0000 (12:49 +0200)]
test local clone by copying
Test the effect of an earlier change by
f7835a2 (preserve mtime of local
clone, 2009-09-12) to keep stale loose object files stale in the new
repository when a local clone is made by copying files in .git/
directory.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Gilger [Sun, 13 Sep 2009 13:35:05 +0000 (15:35 +0200)]
git-clone doc: typofix
Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nelson Elhage [Sun, 13 Sep 2009 16:56:45 +0000 (12:56 -0400)]
git-push: Accept -n as a synonym for --dry-run.
git-push is not currently using -n for anything else, and it seems
unlikely we will want to use it to mean anything else in the future,
so add it as an alias for convenience.
Signed-off-by: Nelson Elhage <nelhage@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 18:23:34 +0000 (11:23 -0700)]
git-commit doc: remove duplicated --dry-run description
60c2993 (Documentation/git-commit.txt: describe --dry-run, 2009-08-15)
wanted to update the documentation to say that "git status" is not the
same as "git commit --dry-run" anymore, but it screwed up and also added
the description of --dry-run that was already present.
Noticed by Johannes Gilger.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 08:50:22 +0000 (01:50 -0700)]
GIT 1.6.5-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jari Aalto [Sun, 13 Sep 2009 06:43:10 +0000 (09:43 +0300)]
Improve --patch option documentation in git-add
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 08:33:29 +0000 (01:33 -0700)]
Merge branch 'pk/fast-import-tars'
* pk/fast-import-tars:
import-tars: Allow per-tar author and commit message.
Junio C Hamano [Sun, 13 Sep 2009 08:33:26 +0000 (01:33 -0700)]
Merge branch 'pk/fast-import-dirs'
* pk/fast-import-dirs:
Add script for importing bits-and-pieces to Git.
Junio C Hamano [Sun, 13 Sep 2009 08:33:20 +0000 (01:33 -0700)]
Merge branch 'jt/pushinsteadof'
* jt/pushinsteadof:
Add url.<base>.pushInsteadOf: URL rewriting for push only
Wrap rewrite globals in a struct in preparation for adding another set
Junio C Hamano [Sun, 13 Sep 2009 08:33:18 +0000 (01:33 -0700)]
Merge branch 'jk/unwanted-advices'
* jk/unwanted-advices:
status: make "how to stage" messages optional
push: make non-fast-forward help message configurable
Junio C Hamano [Sun, 13 Sep 2009 08:33:15 +0000 (01:33 -0700)]
Merge branch 'jc/merge-saner-messages'
* jc/merge-saner-messages:
merge-recursive: give less scary messages when merge did not start
Junio C Hamano [Sun, 13 Sep 2009 02:40:27 +0000 (19:40 -0700)]
quiltimport documentation: --dry-run and -n are synonyms
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Sat, 12 Sep 2009 09:03:48 +0000 (11:03 +0200)]
preserve mtime of local clone
A local clone without hardlinks copies all objects, including dangling
ones, to the new repository. Since the mtimes are renewed, those
dangling objects cannot be pruned by "git gc --prune", even if they
would have been old enough for pruning in the original repository.
Instead, preserve mtime during copy. "git gc --prune" will then work
in the clone just like it did in the original.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jim Meyering [Sat, 12 Sep 2009 08:43:27 +0000 (10:43 +0200)]
don't dereference NULL upon fdopen failure
There were several unchecked use of fdopen(); replace them with xfdopen()
that checks and dies.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jim Meyering [Sat, 12 Sep 2009 08:54:32 +0000 (10:54 +0200)]
use write_str_in_full helper to avoid literal string lengths
This is the same fix to use write_str_in_full() helper to write a constant
string out without counting the length of it ourselves.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 08:31:55 +0000 (01:31 -0700)]
Merge branch 'db/vcs-helper'
* db/vcs-helper:
Makefile: remove remnant of separate http/https/ftp helpers
Use a clearer style to issue commands to remote helpers
Make the "traditionally-supported" URLs a special case
Makefile: install hardlinks for git-remote-<scheme> supported by libcurl if possible
Makefile: do not link three copies of git-remote-* programs
Makefile: git-http-fetch does not need expat
http-fetch: Fix Makefile dependancies
Add transport native helper executables to .gitignore
git-http-fetch: not a builtin
Use an external program to implement fetching with curl
Add support for external programs for handling native fetches
Jim Meyering [Sat, 12 Sep 2009 08:54:32 +0000 (10:54 +0200)]
use write_str_in_full helper to avoid literal string lengths
In
2d14d65 (Use a clearer style to issue commands to remote helpers,
2009-09-03) I happened to notice two changes like this:
- write_in_full(helper->in, "list\n", 5);
+
+ strbuf_addstr(&buf, "list\n");
+ write_in_full(helper->in, buf.buf, buf.len);
+ strbuf_reset(&buf);
IMHO, it would be better to define a new function,
static inline ssize_t write_str_in_full(int fd, const char *str)
{
return write_in_full(fd, str, strlen(str));
}
and then use it like this:
- strbuf_addstr(&buf, "list\n");
- write_in_full(helper->in, buf.buf, buf.len);
- strbuf_reset(&buf);
+ write_str_in_full(helper->in, "list\n");
Thus not requiring the added allocation, and still avoiding
the maintenance risk of literal string lengths.
These days, compilers are good enough that strlen("literal")
imposes no run-time cost.
Transformed via this:
perl -pi -e \
's/write_in_full\((.*?), (".*?"), \d+\)/write_str_in_full($1, $2)/'\
$(git grep -l 'write_in_full.*"')
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Sat, 12 Sep 2009 10:39:30 +0000 (12:39 +0200)]
wrap git's main usage string.
It's now similar wrapped the same way as in Documentation/git.txt, and
fits in a 67 characters wide terminal.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 08:30:53 +0000 (01:30 -0700)]
Merge branch 'maint'
* maint:
GIT 1.6.4.3
svn: properly escape arguments for authors-prog
http.c: remove verification of remote packs
grep: accept relative paths outside current working directory
grep: fix exit status if external_grep() punts
Conflicts:
GIT-VERSION-GEN
RelNotes
Junio C Hamano [Sun, 13 Sep 2009 08:04:23 +0000 (01:04 -0700)]
GIT 1.6.4.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mark Lodato [Sun, 13 Sep 2009 00:33:23 +0000 (20:33 -0400)]
svn: properly escape arguments for authors-prog
Previously, the call to authors-prog was not properly escaped, so any
special characters in the Subversion username, such as spaces and
semi-colons, would be interpreted by the shell rather than being passed
in as the first argument. Now all unsafe characters are escaped using
"git rev-parse --sq-quote"
[ew: switched from "\Q..\E" to "rev-parse --sq-quote"]
Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Sep 2009 08:24:20 +0000 (01:24 -0700)]
Merge branch 'cb/maint-1.6.3-grep-relative-up' into maint
* cb/maint-1.6.3-grep-relative-up:
grep: accept relative paths outside current working directory
grep: fix exit status if external_grep() punts
Conflicts:
t/t7002-grep.sh
Junio C Hamano [Sat, 12 Sep 2009 05:35:30 +0000 (22:35 -0700)]
Makefile: remove remnant of separate http/https/ftp helpers
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 9 Sep 2009 14:59:37 +0000 (10:59 -0400)]
rebase: use plumbing to show dirty state
Commit
4cfbe06 introduced the use of "git diff" to show
dirty state in a format more familiar to users. However, it
should have used the plumbing "git diff-files" instead.
Not only is it good practice in general to use plumbing in
scripts, but in this case we really don't want the automatic
pager to kick in for an error message.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 9 Sep 2009 11:43:03 +0000 (07:43 -0400)]
status: make "how to stage" messages optional
These messages are nice for new users, but experienced git
users know how to manipulate the index, and these messages
waste a lot of screen real estate.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 9 Sep 2009 11:38:58 +0000 (07:38 -0400)]
push: make non-fast-forward help message configurable
This message is designed to help new users understand what
has happened when refs fail to push. However, it does not
help experienced users at all, and significantly clutters
the output, frequently dwarfing the regular status table and
making it harder to see.
This patch introduces a general configuration mechanism for
optional messages, with this push message as the first
example.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 11 Sep 2009 17:45:07 +0000 (19:45 +0200)]
pager: set LESS=FRSX also on Windows
Previously, this environment variable was set in the pager_preexec
callback, which is conditionally-compiled only on Unix, because it is not,
and cannot be, called on Windows.
With this patch the env member of struct child_process is used to set
the environment variable, which also works on Windows.
Noticed by Alexey Borzenkov.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 11 Sep 2009 17:40:08 +0000 (19:40 +0200)]
start_command: do not clobber cmd->env on Windows code path
Previously, it would not be possible to call start_command twice for the
same struct child_process that has env set.
The fix is achieved by moving the loop that modifies the environment block
into a helper function. This also allows us to make two other helper
functions static.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tay Ray Chuan [Wed, 9 Sep 2009 12:33:50 +0000 (20:33 +0800)]
http.c: remove verification of remote packs
Make http.c::fetch_pack_index() no longer check for the remote pack
with a HEAD request before fetching the corresponding pack index file.
Not only does sending a HEAD request before we do a GET incur a
performance penalty, it does not offer any significant error-
prevention advantages (pack fetching in the *_http_pack_request()
methods is capable of handling any errors on its own).
This addresses an issue raised elsewhere:
http://code.google.com/p/msysgit/issues/detail?id=323
http://support.github.com/discussions/repos/957-cant-clone-over-http-or-git
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Sebrecht [Fri, 11 Sep 2009 00:29:58 +0000 (02:29 +0200)]
add documentation for mailinfo.scissors and '--no-scissors'
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Sebrecht [Fri, 11 Sep 2009 00:09:20 +0000 (02:09 +0200)]
mailinfo: add '--scissors' to usage message
Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gernhardt [Thu, 10 Sep 2009 20:28:19 +0000 (16:28 -0400)]
INSTALL: Describe dependency knobs from Makefile
We said that some of our dependencies were optional, but didn't say
how to turn them off. Add information for that and mention where to
save the options close to the top of the file.
Also, standardize on both using quotes for the names of the dependencies
and tabs for indentation of the list.
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gernhardt [Wed, 9 Sep 2009 01:51:00 +0000 (21:51 -0400)]
INSTALL: Reorder dependencies, split shell and Perl
The most important and non-optional dependencies should go first, so put
them there. While we're moving them, the descriptions for shell and perl
were archaic, referring to "bare-bones Porcelainish scripts" that have
become powerful and essential.
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Reilly Grant [Thu, 10 Sep 2009 07:02:38 +0000 (00:02 -0700)]
git-p4: Avoid modules deprecated in Python 2.6.
The popen2, sha and sets modules are deprecated in Python 2.6 (sha in
Python 2.5). Both popen2 and sha are not actually used in git-p4.
Replace usage of sets.Set with the builtin set object.
The built-in set object was added in Python 2.4 and is already used in
other parts of this script, so this dependency is nothing new.
Signed-off-by: Reilly Grant <reillyeon@qotw.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gernhardt [Tue, 8 Sep 2009 13:54:38 +0000 (09:54 -0400)]
Makefile: Add NEEDS_CRYPTO_WITH_SSL
The Makefile comment for NEEDS_SSL_WITH_CRYPTO says to define it "if
you need -lcrypto with -lssl (Darwin)." However, what it actually
does is add -lssl when you use -lcrypto and not the other way around.
However, libcrypto contains a majority of the ERR_* functions from
OpenSSL (at least on OS X) so we need it both ways.
So, add NEEDS_CRYPTO_WITH_SSL which adds -lcrypto to the OpenSSL link
flags and clarify the difference between it and NEEDS_SSL_WITH_CRYPTO.
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Paul Mackerras [Mon, 7 Sep 2009 00:08:21 +0000 (10:08 +1000)]
gitk: Show diff of commits at end of compare-commits output
When comparing a string of commits, when we find two non-merge commits
that differ, we now write the two commits to files and diff the files.
This pulls out the logic for creating a temporary directory from
external_diff into a separate procedure so that the new diffcommits
procedure can use it.
Because the diff command returns an exit status of 1 when the files
differ, and Tcl treats that as an error, this adds catch {} around the
close statements in getblobdiffline.
At present this only removes the temporary files when gitk exits. It
should remove them when the diff is done.
Signed-off-by: Paul Mackerras <paulus@samba.org>