git.git
17 years agorevision --boundary: fix stupid typo
Junio C Hamano [Tue, 6 Mar 2007 11:00:18 +0000 (03:00 -0800)]
revision --boundary: fix stupid typo

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-bundle: make verify a bit more chatty.
Junio C Hamano [Tue, 6 Mar 2007 00:17:27 +0000 (16:17 -0800)]
git-bundle: make verify a bit more chatty.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agorevision traversal: SHOWN means shown
Junio C Hamano [Tue, 6 Mar 2007 02:23:57 +0000 (18:23 -0800)]
revision traversal: SHOWN means shown

This moves the code to set SHOWN on the commit from get_revision_1()
back to get_revision(), so that the bit means what it originally
meant: this commit has been given back to the caller.

Also it fixes the --reverse breakage Dscho pointed out.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-bundle: various fixups
Junio C Hamano [Tue, 6 Mar 2007 00:16:32 +0000 (16:16 -0800)]
git-bundle: various fixups

verify_bundle() returned with an error early only when all
prerequisite commits were missing.  It should error out much
earlier when some are missing.

When the rev-list is limited in ways other than revision range
(e.g. --max-count or --max-age), create_bundle() listed all
positive refs given from the command line as if they are
available, but resulting pack may not have some of them.  Add a
logic to make sure all of them are included, and error out
otherwise.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agorevision traversal: retire BOUNDARY_SHOW
Junio C Hamano [Tue, 6 Mar 2007 00:10:28 +0000 (16:10 -0800)]
revision traversal: retire BOUNDARY_SHOW

This removes the flag internally used by revision traversal to
decide which commits are indeed boundaries and renames it to
CHILD_SHOWN.  builtin-bundle uses the symbol for its
verification, but I think the logic it uses it is wrong.  The
flag is still useful but it is local to the git-bundle, so it is
renamed to PREREQ_MARK.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agorevision walker: Fix --boundary when limited
Junio C Hamano [Mon, 5 Mar 2007 21:10:06 +0000 (13:10 -0800)]
revision walker: Fix --boundary when limited

This cleans up the boundary processing in the commit walker.  It

 - rips out the boundary logic from the commit walker. Placing
   "negative" commits in the revs->commits list was Ok if all we
   cared about "boundary" was the UNINTERESTING limiting case,
   but conceptually it was wrong.

 - makes get_revision_1() function to walk the commits and return
   the results as if there is no funny postprocessing flags such
   as --reverse, --skip nor --max-count.

 - makes get_revision() function the postprocessing phase:

   If reverse is given, wait for get_revision_1() to give
   everything that it would normally give, and then reverse it
   before consuming.

   If skip is given, skip that many before going further.

   If max is given, stop when we gave out that many.

   Now that we are about to return one positive commit, mark
   the parents of that commit to be potential boundaries
   before returning, iff we are doing the boundary processing.

   Return the commit.

 - After get_revision() finishes giving out all the positive
   commits, if we are doing the boundary processing, we look at
   the parents that we marked as potential boundaries earlier,
   see if they are really boundaries, and give them out.

It loses more code than it adds, even when the new gc_boundary()
function, which is purely for early optimization, is counted.

Note that this patch is purely for eyeballing and discussion
only.  It breaks git-bundle's verify logic because the logic
does not use BOUNDARY_SHOW flag for its internal computation
anymore.  After we correct it not to attempt to affect the
boundary processing by setting the BOUNDARY_SHOW flag, we can
remove BOUNDARY_SHOW from revision.h and use that bit assignment
for the new CHILD_SHOWN flag.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Tue, 6 Mar 2007 08:45:34 +0000 (00:45 -0800)]
Merge branch 'maint'

* maint:
  git-gui: Make 'make' quieter by default
  git-gui: Remove unnecessary /dev/null redirection.
  git-gui: Don't create empty (same tree as parent) commits.
  git-gui: Add Reset to the Branch menu.
  git-gui: Relocate the menu/transport menu code.

17 years agoMerge branch 'master' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Tue, 6 Mar 2007 08:39:52 +0000 (00:39 -0800)]
Merge branch 'master' of git://repo.or.cz/git-gui into maint

* 'master' of git://repo.or.cz/git-gui:
  git-gui: Make 'make' quieter by default
  git-gui: Remove unnecessary /dev/null redirection.
  git-gui: Don't create empty (same tree as parent) commits.
  git-gui: Add Reset to the Branch menu.
  git-gui: Relocate the menu/transport menu code.

17 years agogit-bundle: fix pack generation.
Junio C Hamano [Tue, 6 Mar 2007 06:48:00 +0000 (22:48 -0800)]
git-bundle: fix pack generation.

The handcrafted built-in rev-list lookalike forgot to mark the trees
and blobs contained in the boundary commits uninteresting, resulting
in unnecessary objects in the pack.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-gui: Make 'make' quieter by default gitgui-0.6.3
Shawn O. Pearce [Tue, 6 Mar 2007 07:13:23 +0000 (02:13 -0500)]
git-gui: Make 'make' quieter by default

To fit nicely into the output of the git.git project's own quieter
Makefile, we want to make the git-gui Makefile nice and quiet too.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMerge branch 'maint'
Junio C Hamano [Tue, 6 Mar 2007 07:11:54 +0000 (23:11 -0800)]
Merge branch 'maint'

* maint:
  git-commit: cd to top before showing the final stat

17 years agogit-commit: cd to top before showing the final stat
Junio C Hamano [Mon, 5 Mar 2007 20:35:41 +0000 (12:35 -0800)]
git-commit: cd to top before showing the final stat

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'master-for-junio' of git://repo.or.cz/git/fastimport; branch 'maint'
Junio C Hamano [Tue, 6 Mar 2007 05:23:46 +0000 (21:23 -0800)]
Merge branch 'master-for-junio' of git://repo.or.cz/git/fastimport; branch 'maint'

* 'master-for-junio' of git://repo.or.cz/git/fastimport:
  fast-import: Fail if a non-existant commit is used for merge
  fast-import: Avoid infinite loop after reset

* maint:
  Fix diff-options references in git-diff and git-format-patch
  Add definition of <commit-ish> to the main git man page.
  Begin SubmittingPatches with a check list
  fast-import: Fail if a non-existant commit is used for merge
  fast-import: Avoid infinite loop after reset

17 years agoFix diff-options references in git-diff and git-format-patch
Brian Gernhardt [Tue, 6 Mar 2007 03:27:44 +0000 (22:27 -0500)]
Fix diff-options references in git-diff and git-format-patch

Most of the git-diff-* documentation used [<common diff options>]
instead of [--diff-options], so make that change in git-diff and
git-format-patch.

In addition, git-format-patch didn't include the meanings of the diff
options.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd definition of <commit-ish> to the main git man page.
Theodore Ts'o [Mon, 5 Mar 2007 19:46:05 +0000 (14:46 -0500)]
Add definition of <commit-ish> to the main git man page.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint-for-junio' of git://repo.or.cz/git/fastimport into maint
Junio C Hamano [Tue, 6 Mar 2007 01:07:17 +0000 (17:07 -0800)]
Merge branch 'maint-for-junio' of git://repo.or.cz/git/fastimport into maint

* 'maint-for-junio' of git://repo.or.cz/git/fastimport:
  fast-import: Fail if a non-existant commit is used for merge
  fast-import: Avoid infinite loop after reset

17 years agoBegin SubmittingPatches with a check list
Johannes Schindelin [Mon, 5 Mar 2007 15:37:54 +0000 (16:37 +0100)]
Begin SubmittingPatches with a check list

It seems that some people prefer a short list to a long text. But even for
the latter group, a quick reminder list is useful. So, add a check list to
Documentation/SubmittingPatches of what to do to get your patch accepted.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Shawn O. Pearce [Mon, 5 Mar 2007 17:49:02 +0000 (12:49 -0500)]
Merge branch 'maint'

* maint:
  fast-import: Fail if a non-existant commit is used for merge
  fast-import: Avoid infinite loop after reset

[sp: Minor evil merge to deal with type_names array moving
 to be private in 'master'.]

17 years agofast-import: Fail if a non-existant commit is used for merge
Shawn O. Pearce [Mon, 5 Mar 2007 17:43:14 +0000 (12:43 -0500)]
fast-import: Fail if a non-existant commit is used for merge

Johannes Sixt noticed during one of his own imports that fast-import
did not fail if a non-existant commit is referenced by SHA-1 value
as an argument to the 'merge' command.  This allowed the user to
unknowingly create commits that would fail in fsck, as the commit
contents would not be completely reachable.

A side effect of this bug was that a frontend process could mark
any SHA-1 object (blob, tree, tag) as a parent of a merge commit.
This should also fail in fsck, as the commit is not a valid commit.

We now use the same rule as the 'from' command.  If a commit is
referenced in the 'merge' command by hex formatted SHA-1 then the
SHA-1 must be a commit or a tag that can be peeled back to a commit,
the commit must already exist, and must be readable by the core Git
infrastructure code.  This requirement means that the commit must
have existed prior to fast-import starting, or the commit must have
been flushed out by a prior 'checkpoint' command.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agofast-import: Avoid infinite loop after reset
Shawn O. Pearce [Mon, 5 Mar 2007 17:31:09 +0000 (12:31 -0500)]
fast-import: Avoid infinite loop after reset

Johannes Sixt noticed that a 'reset' command applied to a branch that
is already active in the branch LRU cache can cause fast-import to
relink the same branch into the LRU cache twice.  This will cause
the LRU cache to contain a cycle, making unload_one_branch run in an
infinite loop as it tries to select the oldest branch for eviction.

I have trivially fixed the problem by adding an active bit to
each branch object; this bit indicates if the branch is already
in the LRU and allows us to avoid trying to add it a second time.
Converting the pack_id field into a bitfield makes this change take
up no additional memory.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agocontrib/emacs: Use non-interactive function to byte-compile files
Xavier Maillard [Mon, 5 Mar 2007 08:23:42 +0000 (09:23 +0100)]
contrib/emacs: Use non-interactive function to byte-compile files

Add git-blame as a candidate to the byte-compilation.

batch-byte-compile is the prefered way to byte-compile files in
batch mode. Use it instead of the interactive function.

Signed-off-by: Xavier Maillard <zedek@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agot/t5515-fetch-merge-logic.sh: Added tests for the merge login in git-fetch
Santi Béjar [Mon, 5 Mar 2007 08:09:39 +0000 (09:09 +0100)]
t/t5515-fetch-merge-logic.sh: Added tests for the merge login in git-fetch

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoPost 1.5.0.3 cleanup
Junio C Hamano [Mon, 5 Mar 2007 06:49:10 +0000 (22:49 -0800)]
Post 1.5.0.3 cleanup

Update the main git.html page to point at 1.5.0.3 documentation.
Update draft 1.5.1 release notes with what we have so far.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'js/fetch-progress' (early part)
Junio C Hamano [Mon, 5 Mar 2007 01:31:21 +0000 (17:31 -0800)]
Merge branch 'js/fetch-progress' (early part)

* 'js/fetch-progress' (early part):
  Fixup no-progress for fetch & clone
  fetch & clone: do not output progress when not on a tty

Conflicts:

git-fetch.sh

17 years agoMerge branch 'js/symlink'
Junio C Hamano [Mon, 5 Mar 2007 01:31:09 +0000 (17:31 -0800)]
Merge branch 'js/symlink'

* js/symlink:
  Tell multi-parent diff about core.symlinks.
  Handle core.symlinks=false case in merge-recursive.
  Add core.symlinks to mark filesystems that do not support symbolic links.

17 years agoMerge branch 'maint'
Junio C Hamano [Mon, 5 Mar 2007 01:24:49 +0000 (17:24 -0800)]
Merge branch 'maint'

* maint:
  GIT 1.5.0.3
  glossary: Add definitions for dangling and unreachable objects
  user-manual: more detailed merge discussion
  user-manual: how to replace commits older than most recent
  user-manual: insert earlier of mention content-addressable architecture
  user-manual: ensure generated manual references stylesheet
  user-manual: reset to ORIG_HEAD not HEAD to undo merge
  Documentation: mention module option to git-cvsimport

17 years agoGIT 1.5.0.3 v1.5.0.3
Junio C Hamano [Mon, 5 Mar 2007 01:20:38 +0000 (17:20 -0800)]
GIT 1.5.0.3

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoglossary: Add definitions for dangling and unreachable objects
Yasushi SHOJI [Sun, 4 Mar 2007 18:07:43 +0000 (03:07 +0900)]
glossary: Add definitions for dangling and unreachable objects

Define "dangling" and "unreachable" objects.  Modified from original
text proposed by Yasushi Shoji.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: more detailed merge discussion
J. Bruce Fields [Sat, 3 Mar 2007 20:34:27 +0000 (15:34 -0500)]
user-manual: more detailed merge discussion

Add more details on conflict, including brief discussion of file stages.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: how to replace commits older than most recent
J. Bruce Fields [Sat, 3 Mar 2007 19:30:32 +0000 (14:30 -0500)]
user-manual: how to replace commits older than most recent

"Modifying" an old commit by checking it out, --amend'ing it, then
rebasing on top of it, is a slightly cumbersome technique, but I've
found it useful frequently enough to make it seem worth documenting.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: insert earlier of mention content-addressable architecture
J. Bruce Fields [Sat, 3 Mar 2007 19:04:42 +0000 (14:04 -0500)]
user-manual: insert earlier of mention content-addressable architecture

The content-addressable design is too important not to be worth at least
a brief mention a little earlier on.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: ensure generated manual references stylesheet
J. Bruce Fields [Sat, 3 Mar 2007 18:33:48 +0000 (13:33 -0500)]
user-manual: ensure generated manual references stylesheet

The generated user manual is rather hard to read thanks to the lack of
the css that's supposed to be included from docbook-xsl.css.

I'm totally ignorant of the toolchain; grubbing through xmlto and
related scripts, the easiest way I could find to ensure that the
generated html links to the stylesheet is by calling xsltproc directly.
Maybe there's some better way.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: reset to ORIG_HEAD not HEAD to undo merge
J. Bruce Fields [Mon, 19 Feb 2007 23:46:09 +0000 (18:46 -0500)]
user-manual: reset to ORIG_HEAD not HEAD to undo merge

As Linus pointed out recently on the mailing list,

git reset --hard HEAD^

doesn't undo a merge in the case where the merge did a fast-forward.  So
the rcommendation here is a little dangerous.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: mention module option to git-cvsimport
J. Bruce Fields [Tue, 6 Feb 2007 07:51:26 +0000 (02:51 -0500)]
Documentation: mention module option to git-cvsimport

The git-cvsimport argument that specifies a cvs module to import should
probably be included in the default example.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-svn: fix show-ignore when not connected to the repository root
Eric Wong [Sun, 4 Mar 2007 08:15:29 +0000 (00:15 -0800)]
git-svn: fix show-ignore when not connected to the repository root

It was traversing the entire repository before.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agodiff-ni: allow running from a subdirectory.
Junio C Hamano [Sun, 4 Mar 2007 07:45:14 +0000 (23:45 -0800)]
diff-ni: allow running from a subdirectory.

When run from a subdirectory of a repository, the command forgot
to adjust paths given to it with prefix.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'js/diff-ni' (early part)
Junio C Hamano [Sun, 4 Mar 2007 06:51:46 +0000 (22:51 -0800)]
Merge branch 'js/diff-ni' (early part)

* 'js/diff-ni' (early part):
  diff: make more cases implicit --no-index

17 years agoMerge branch 'maint'
Junio C Hamano [Sun, 4 Mar 2007 03:47:46 +0000 (19:47 -0800)]
Merge branch 'maint'

* maint:
  Unset NO_C99_FORMAT on Cygwin.
  Fix a "pointer type missmatch" warning.
  Fix some "comparison is always true/false" warnings.
  Fix an "implicit function definition" warning.
  Fix a "label defined but unreferenced" warning.
  Document the config variable format.suffix
  git-merge: fail correctly when we cannot fast forward.
  builtin-archive: use RUN_SETUP
  Fix git-gc usage note

17 years agoUnset NO_C99_FORMAT on Cygwin.
Ramsay Jones [Sat, 3 Mar 2007 18:28:39 +0000 (18:28 +0000)]
Unset NO_C99_FORMAT on Cygwin.

This should only be set based on the capability of your
compiler/library to support c99 format specifiers. In this
case the version of gcc/newlib and indirectly the version
of Cygwin. It should probably only be set in your config.mak
file.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoTell multi-parent diff about core.symlinks.
Johannes Sixt [Sat, 3 Mar 2007 19:38:00 +0000 (20:38 +0100)]
Tell multi-parent diff about core.symlinks.

When core.symlinks is false, and a merge of symbolic links had conflicts,
the merge result is left as a file in the working directory. A decision
must be made whether the file is treated as a regular file or as a
symbolic link. This patch treats the file as a symbolic link only if
all merge parents were also symbolic links.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoHandle core.symlinks=false case in merge-recursive.
Johannes Sixt [Sat, 3 Mar 2007 19:32:46 +0000 (20:32 +0100)]
Handle core.symlinks=false case in merge-recursive.

If the file system does not support symbolic links (core.symlinks=false),
merge-recursive must write the merged symbolic link text into a regular
file.

While we are here, fix a tiny memory leak in the if-branch that writes
real symbolic links.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix a "pointer type missmatch" warning.
Ramsay Jones [Sat, 3 Mar 2007 18:29:03 +0000 (18:29 +0000)]
Fix a "pointer type missmatch" warning.

In particular, the second parameter in the call to iconv() will
cause this warning if your library declares iconv() with the
second (input buffer pointer) parameter of type const char **.
This is the old prototype, which is none-the-less used by the
current version of newlib on Cygwin. (It appears in old versions
of glibc too).

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix some "comparison is always true/false" warnings.
Ramsay Jones [Sat, 3 Mar 2007 18:28:57 +0000 (18:28 +0000)]
Fix some "comparison is always true/false" warnings.

On Cygwin the wchar_t type is an unsigned short (16-bit) int.
This results in the above warnings from the return statement in
the wcwidth() function (in particular, the expressions involving
constants with values larger than 0xffff). Simply replace the
use of wchar_t with an unsigned int, typedef-ed as ucs_char_t.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix an "implicit function definition" warning.
Ramsay Jones [Sat, 3 Mar 2007 18:28:52 +0000 (18:28 +0000)]
Fix an "implicit function definition" warning.

The function at issue being initgroups() from the <grp.h> header
file. On Cygwin, setting _XOPEN_SOURCE suppresses the definition
of initgroups(), which causes the warning while compiling daemon.c.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix a "label defined but unreferenced" warning.
Ramsay Jones [Sat, 3 Mar 2007 18:28:46 +0000 (18:28 +0000)]
Fix a "label defined but unreferenced" warning.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocument the config variable format.suffix
Johannes Schindelin [Sat, 3 Mar 2007 23:17:23 +0000 (00:17 +0100)]
Document the config variable format.suffix

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-merge: fail correctly when we cannot fast forward.
Junio C Hamano [Sat, 3 Mar 2007 21:04:54 +0000 (13:04 -0800)]
git-merge: fail correctly when we cannot fast forward.

When we cannot fast forward the working tree and the current
branch, git-merge did not exit with non-zero status.

Noticed by Larry Streepy, the section to be fixed identfied by
Johannes Schindelin.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agobuiltin-archive: use RUN_SETUP
Johannes Schindelin [Sat, 3 Mar 2007 16:14:25 +0000 (17:14 +0100)]
builtin-archive: use RUN_SETUP

It used to roll its own setup.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix git-gc usage note
Matthias Kestenholz [Sat, 3 Mar 2007 17:28:14 +0000 (18:28 +0100)]
Fix git-gc usage note

Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd core.symlinks to mark filesystems that do not support symbolic links.
Johannes Sixt [Fri, 2 Mar 2007 21:11:30 +0000 (22:11 +0100)]
Add core.symlinks to mark filesystems that do not support symbolic links.

Some file systems that can host git repositories and their working copies
do not support symbolic links. But then if the repository contains a symbolic
link, it is impossible to check out the working copy.

This patch enables partial support of symbolic links so that it is possible
to check out a working copy on such a file system.  A new flag
core.symlinks (which is true by default) can be set to false to indicate
that the filesystem does not support symbolic links. In this case, symbolic
links that exist in the trees are checked out as small plain files, and
checking in modifications of these files preserve the symlink property in
the database (as long as an entry exists in the index).

Of course, this does not magically make symbolic links work on such defective
file systems; hence, this solution does not help if the working copy relies
on that an entry is a real symbolic link.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Sat, 3 Mar 2007 00:57:53 +0000 (16:57 -0800)]
Merge branch 'maint'

* maint:
  Fix quoting in update hook template

17 years agogit-branch: document new --no-abbrev option
Julian Phillips [Sat, 3 Mar 2007 00:31:17 +0000 (00:31 +0000)]
git-branch: document new --no-abbrev option

Add the new --no-abbrev option to the man page for the git-branch command.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-branch: improve abbreviation of sha1s in verbose mode
Julian Phillips [Sat, 3 Mar 2007 00:31:16 +0000 (00:31 +0000)]
git-branch: improve abbreviation of sha1s in verbose mode

git-branch has an --abbrev= command line option, but it does
no checking of the input.  Take the argument parsing code from
setup_revisions in revisions.c, and also the code for parsing
the --no-abbrev option.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoprint_wrapped_text: fix output for negative indent
Johannes Schindelin [Fri, 2 Mar 2007 14:28:00 +0000 (15:28 +0100)]
print_wrapped_text: fix output for negative indent

When providing a negative indent, it means that -indent columns were
already printed. Fix a bug where the function ate the first character
if already the first word did not fit into the first line.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix quoting in update hook template
Gerrit Pape [Fri, 2 Mar 2007 12:20:10 +0000 (12:20 +0000)]
Fix quoting in update hook template

By default allowunannotated is unset in the repo config, hence
$allowunannotated is empty, and must be quoted to not break the syntax.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoSample update hook: typofix and modernization to use "git log"
Andy Parkins [Fri, 2 Mar 2007 19:29:20 +0000 (19:29 +0000)]
Sample update hook: typofix and modernization to use "git log"

Instead of using antiquated "git-rev-parse | git-rev-list"
pipeline, it is easier to use "git-rev-list" or "git-log" these
days, as Linus points out.

While we are at it, fix the typo on variable name $newref that
should be $newrev.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'js/commit-format'
Junio C Hamano [Fri, 2 Mar 2007 08:37:12 +0000 (00:37 -0800)]
Merge branch 'js/commit-format'

* js/commit-format:
  show_date(): rename the "relative" parameter to "mode"
  Actually make print_wrapped_text() useful
  pretty-formats: add 'format:<string>'

17 years agoMerge branch 'maint'
Junio C Hamano [Fri, 2 Mar 2007 08:31:51 +0000 (00:31 -0800)]
Merge branch 'maint'

* maint:
  Another memory overrun in http-push.c
  fetch.o depends on the headers, too.
  Documentation: Correct minor typo in git-add documentation.
  Documentation/git-send-email.txt: Fix labeled list formatting
  Documentation/git-quiltimport.txt: Fix labeled list formatting
  Documentation/build-docdep.perl: Fix dependencies for included asciidoc files

17 years agoAnother memory overrun in http-push.c
Eygene Ryabinkin [Thu, 1 Mar 2007 16:09:12 +0000 (19:09 +0300)]
Another memory overrun in http-push.c

Use of strlcpy() are wrong, as the source buffer at these
locations may not be NUL-terminated.

17 years agofetch.o depends on the headers, too.
Johannes Schindelin [Tue, 27 Feb 2007 23:55:48 +0000 (00:55 +0100)]
fetch.o depends on the headers, too.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: Correct minor typo in git-add documentation.
Christian Schlotter [Thu, 1 Mar 2007 17:08:17 +0000 (18:08 +0100)]
Documentation: Correct minor typo in git-add documentation.

Signed-off-by: Christian Schlotter <schlotter@users.sourceforge.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/git-svn.txt: Fix formatting errors
Sergey Vlasov [Thu, 1 Mar 2007 19:41:17 +0000 (22:41 +0300)]
Documentation/git-svn.txt: Fix formatting errors

Fix some formatting problems:

  - Some list labels were missing their "::" characters.
  - Some of continuation paragraphs in labeled lists were incorrectly
    formatted as literal paragraphs.
  - In one case "[verse]" was missing before the config key list.
  - The "Basic Examples" section was incorrectly nested inside the
    "Config File-Only Options" section.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/git-send-email.txt: Fix labeled list formatting
Sergey Vlasov [Thu, 1 Mar 2007 19:41:16 +0000 (22:41 +0300)]
Documentation/git-send-email.txt: Fix labeled list formatting

Mark continuation paragraphs of list entries as such to avoid
getting literal paragraphs instead.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/git-quiltimport.txt: Fix labeled list formatting
Sergey Vlasov [Thu, 1 Mar 2007 19:41:15 +0000 (22:41 +0300)]
Documentation/git-quiltimport.txt: Fix labeled list formatting

Mark the continuation paragraph of a list entry as such to avoid
getting a literal paragraph instead.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/build-docdep.perl: Fix dependencies for included asciidoc files
Sergey Vlasov [Thu, 1 Mar 2007 19:41:14 +0000 (22:41 +0300)]
Documentation/build-docdep.perl: Fix dependencies for included asciidoc files

Adding dependencies on included files to the generated man pages is
wrong - includes are processed by asciidoc, therefore the intermediate
Docbook XML files really depend on included files.  Because of these
wrong dependencies the man pages were not rebuilt properly if the
intermediate XML files were left in the tree.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-gui: Remove unnecessary /dev/null redirection.
Shawn O. Pearce [Thu, 1 Mar 2007 19:37:34 +0000 (14:37 -0500)]
git-gui: Remove unnecessary /dev/null redirection.

Git 1.5.0 and later no longer output useless messages to standard
error when making the initial (or what looks to be) commit of a
repository.  Since /dev/null does not exist on Windows in the
MinGW environment we can't redirect there anyway.  Since Git
does not output anymore, I'm removing the redirection.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agofix various doc typos
Michael Coleman [Thu, 1 Mar 2007 05:14:23 +0000 (23:14 -0600)]
fix various doc typos

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agodiff: make more cases implicit --no-index
Johannes Schindelin [Sun, 25 Feb 2007 22:35:27 +0000 (23:35 +0100)]
diff: make more cases implicit --no-index

When specifying an absolute path, or a relative path pointing outside
the working tree, do not fail, but roll your own diffopt parsing,
and execute a --no-index diff.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd recent changes to draft 1.5.1 release notes.
Junio C Hamano [Wed, 28 Feb 2007 23:06:38 +0000 (15:06 -0800)]
Add recent changes to draft 1.5.1 release notes.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'js/commit-by-name'
Junio C Hamano [Wed, 28 Feb 2007 22:56:08 +0000 (14:56 -0800)]
Merge branch 'js/commit-by-name'

* js/commit-by-name:
  object name: introduce ':/<oneline prefix>' notation

17 years agoMerge branch 'js/bundle'
Junio C Hamano [Wed, 28 Feb 2007 22:38:36 +0000 (14:38 -0800)]
Merge branch 'js/bundle'

* js/bundle:
  bundle: reword missing prerequisite error message
  git-bundle: record commit summary in the prerequisite data
  git-bundle: fix 'create --all'
  git-bundle: avoid fork() in verify_bundle()
  git-bundle: assorted fixes
  Add git-bundle: move objects and references by archive

17 years agoMerge branch 'maint'
Junio C Hamano [Wed, 28 Feb 2007 22:18:57 +0000 (14:18 -0800)]
Merge branch 'maint'

* maint:
  Start preparing Release Notes for 1.5.0.3
  Documentation: git-remote add [-t <branch>] [-m <branch>] [-f] name url
  Include config.mak in doc/Makefile
  git.el: Set the default commit coding system from the repository config.
  git-archimport: support empty summaries, put summary on a single line.
  http-push.c::lock_remote(): validate all remote refs.
  git-cvsexportcommit: don't cleanup .msg if not yet committed to cvs.

17 years agoStart preparing Release Notes for 1.5.0.3
Junio C Hamano [Wed, 28 Feb 2007 22:17:45 +0000 (14:17 -0800)]
Start preparing Release Notes for 1.5.0.3

17 years agoDocumentation: git-remote add [-t <branch>] [-m <branch>] [-f] name url
Junio C Hamano [Wed, 28 Feb 2007 22:05:42 +0000 (14:05 -0800)]
Documentation: git-remote add [-t <branch>] [-m <branch>] [-f] name url

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoInclude config.mak in doc/Makefile
Uwe Kleine-König [Wed, 28 Feb 2007 20:57:42 +0000 (21:57 +0100)]
Include config.mak in doc/Makefile

config.mak.autogen is already there.  Without this change it is not
possible to override mandir in config.mak.

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit.el: Set the default commit coding system from the repository config.
Alexandre Julliard [Wed, 28 Feb 2007 19:59:48 +0000 (20:59 +0100)]
git.el: Set the default commit coding system from the repository config.

If not otherwise specified, take the default coding system for commits
from the 'i18n.commitencoding' repository configuration value.

Also set the buffer-file-coding-system variable in the log buffer to
make the selected coding system visible on the modeline.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-archimport: support empty summaries, put summary on a single line.
Paolo Bonzini [Wed, 28 Feb 2007 20:02:02 +0000 (21:02 +0100)]
git-archimport: support empty summaries, put summary on a single line.

Don't fail if the summary line in an arch commit is empty.  In this case,
try to use the first line in the commit message followed by an ellipsis.
In addition, if the summary is multi-line, it is joined on a single line.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agohttp-push.c::lock_remote(): validate all remote refs.
Eygene Ryabinkin [Wed, 28 Feb 2007 20:12:02 +0000 (12:12 -0800)]
http-push.c::lock_remote(): validate all remote refs.

Starting from offset 11 might have been good back when it was
only used for updating "refs/heads/*", but it is used to update
"info/refs" and "refs/tags/*" as well.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoindex_fd(): convert blob only if it is a regular file.
Junio C Hamano [Wed, 28 Feb 2007 19:57:39 +0000 (11:57 -0800)]
index_fd(): convert blob only if it is a regular file.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoindex_fd(): pass optional path parameter as hint for blob conversion
Junio C Hamano [Wed, 28 Feb 2007 19:52:04 +0000 (11:52 -0800)]
index_fd(): pass optional path parameter as hint for blob conversion

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoindex_fd(): use enum object_type instead of type name string.
Junio C Hamano [Wed, 28 Feb 2007 19:45:56 +0000 (11:45 -0800)]
index_fd(): use enum object_type instead of type name string.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'np/types'
Junio C Hamano [Wed, 28 Feb 2007 19:58:27 +0000 (11:58 -0800)]
Merge branch 'np/types'

* np/types:
  Cleanup check_valid in commit-tree.
  make sure enum object_type is signed
  get rid of lookup_object_type()
  convert object type handling from a string to a number
  formalize typename(), and add its reverse type_from_string()
  sha1_file.c: don't ignore an error condition in sha1_loose_object_info()
  sha1_file.c: cleanup "offset" usage
  sha1_file.c: cleanup hdr usage

17 years agogit-cvsexportcommit: don't cleanup .msg if not yet committed to cvs.
Gerrit Pape [Wed, 28 Feb 2007 12:35:39 +0000 (12:35 +0000)]
git-cvsexportcommit: don't cleanup .msg if not yet committed to cvs.

Unless the -c option is given, and the commit to cvs was successful,
.msg shouldn't be deleted to be able to run the command suggested by
git-cvsexportcommit.

See http://bugs.debian.org/412732

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'mc/sendmail'
Junio C Hamano [Wed, 28 Feb 2007 06:23:40 +0000 (22:23 -0800)]
Merge branch 'mc/sendmail'

* mc/sendmail:
  git-send-email: abort/usage on bad option

17 years agoMerge branch 'js/diff-ni' (early part)
Junio C Hamano [Wed, 28 Feb 2007 06:18:22 +0000 (22:18 -0800)]
Merge branch 'js/diff-ni' (early part)

* 'js/diff-ni' (early part):
  diff --no-index: also imitate the exit status of diff(1)
  Fix typo: do not show name1 when name2 fails
  Teach git-diff-files the new option `--no-index`
  run_diff_{files,index}(): update calling convention.
  update-index: do not die too early in a read-only repository.
  git-status: do not be totally useless in a read-only repository.

17 years agoMerge branch 'maint'
Junio C Hamano [Wed, 28 Feb 2007 06:15:42 +0000 (22:15 -0800)]
Merge branch 'maint'

* maint:
  builtin-fmt-merge-msg: fix bugs in --file option
  index-pack: Loop over pread until data loading is complete.
  blameview: Fix the browse behavior in blameview
  Fix minor typos/grammar in user-manual.txt
  Correct ordering in git-cvsimport's option documentation
  git-show: Reject native ref
  Fix git-show man page formatting in the EXAMPLES section

17 years agobuiltin-fmt-merge-msg: fix bugs in --file option
Michael Coleman [Wed, 28 Feb 2007 05:44:42 +0000 (23:44 -0600)]
builtin-fmt-merge-msg: fix bugs in --file option

If --file's argument is missing, don't crash.  If it cannot be opened,
die with an error message.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoindex-pack: Loop over pread until data loading is complete.
Shawn O. Pearce [Wed, 28 Feb 2007 04:47:19 +0000 (23:47 -0500)]
index-pack: Loop over pread until data loading is complete.

A filesystem might not be able to completely supply our pread
request in one system call, such as if we are reading data from a
network file system and the requested length is just simply huge.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoblameview: Fix the browse behavior in blameview
Aneesh Kumar [Mon, 26 Feb 2007 08:31:57 +0000 (14:01 +0530)]
blameview: Fix the browse behavior in blameview

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoCleanup check_valid in commit-tree.
Shawn O. Pearce [Tue, 27 Feb 2007 15:00:33 +0000 (10:00 -0500)]
Cleanup check_valid in commit-tree.

This routine should be using the object_type enum rather than a
string comparsion, as the expected type is always supplied and is
known at compile time.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agomake sure enum object_type is signed
Nicolas Pitre [Wed, 28 Feb 2007 01:38:31 +0000 (20:38 -0500)]
make sure enum object_type is signed

This allows for keeping the common idiom which consists of using
negative values to signal error conditions by ensuring that the enum
will be a signed type.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-send-email: abort/usage on bad option
Michael Coleman [Wed, 28 Feb 2007 04:47:54 +0000 (22:47 -0600)]
git-send-email: abort/usage on bad option

Instead of proceeding, abort and give usage message when a bad option
is seen.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix minor typos/grammar in user-manual.txt
Michael Coleman [Wed, 28 Feb 2007 04:13:09 +0000 (22:13 -0600)]
Fix minor typos/grammar in user-manual.txt

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoCorrect ordering in git-cvsimport's option documentation
Michael Poole [Wed, 28 Feb 2007 03:27:44 +0000 (22:27 -0500)]
Correct ordering in git-cvsimport's option documentation

A pair of commits on January 8th added option documentation (for -a,
-S and -L) in the middle of the documentation for the -A option.  This
makes -A's documentation contiguous again.

Signed-off-by: Michael Poole <mdpoole@troilus.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoshow_date(): rename the "relative" parameter to "mode"
Johannes Schindelin [Tue, 27 Feb 2007 15:21:04 +0000 (16:21 +0100)]
show_date(): rename the "relative" parameter to "mode"

Now, show_date() can print three different kinds of dates: normal,
relative and short (%Y-%m-%s) dates.

To achieve this, the "int relative" was changed to "enum date_mode
mode", which has three states: DATE_NORMAL, DATE_RELATIVE and
DATE_SHORT.

Since existing users of show_date() only call it with relative_date
being either 0 or 1, and DATE_NORMAL and DATE_RELATIVE having these
values, no behaviour is changed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoActually make print_wrapped_text() useful
Johannes Schindelin [Tue, 27 Feb 2007 15:20:31 +0000 (16:20 +0100)]
Actually make print_wrapped_text() useful

Now, it returns the current column, does not add a newline, and you can
pass a negative indent, to indicate that the indent was already printed.

With this, you can actually continue in the middle of a paragraph, not
having to print everything into a buffer first.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-show: Reject native ref
Linus Torvalds [Wed, 28 Feb 2007 00:22:52 +0000 (16:22 -0800)]
git-show: Reject native ref

So when we do

git show v1.4.4..v1.5.0

that's an illogical thing to do, since "git show" is defined to be a
non-revision-walking action, which means the range operator be pointless
and wrong. The fact that we happily accept it (and then _only_ show
v1.5.0, which is the positive end of the range) is quite arguably not very
logical.

We should complain, and say that you can only do "no_walk" with positive
refs. Negative object refs really don't make any sense unless you walk
the obejct list (or you're "git diff" and know about ranges explicitly).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Make always-binary mode a config file option
Andy Parkins [Tue, 27 Feb 2007 13:46:55 +0000 (13:46 +0000)]
cvsserver: Make always-binary mode a config file option

The config option gitcvs.allbinary may be set to force all entries to
get the -kb flag.

In the future the gitattributes system will probably be a more
appropriate way of doing this, but that will easily slot in as the
entries lines sent to the CVS client now have their kopts set via the
function kopts_from_path().

In the interim it might be better to not just have a all-or-nothing
approach, but rather detect based on file extension (or file contents?).
That would slot in easily here as well.  However, I personally prefer
everything to be binary-safe, so I just switch the switch.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Remove trailing "\n" from commithash in checkin function
Andy Parkins [Tue, 27 Feb 2007 12:49:09 +0000 (12:49 +0000)]
cvsserver: Remove trailing "\n" from commithash in checkin function

The commithash for updating the ref is obtained from a call to
git-commit-tree.  However, it was returned (and stored) with the
trailing newline.  This meant that the later call to git-update-ref that
was trying to update to $commithash was including the newline in the
parameter - obviously that hash would never exist, and so git-update-ref
would always fail.

The solution is to chomp() the commithash as soon as it is returned by
git-commit-tree.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMake 'cvs ci' lockless in git-cvsserver by using git-update-ref
Junio C Hamano [Wed, 21 Feb 2007 05:54:39 +0000 (21:54 -0800)]
Make 'cvs ci' lockless in git-cvsserver by using git-update-ref

This makes "ci" codepath lockless by following the usual
"remember the tip, do your thing, then compare and swap at the
end" update pattern using update-ref.  Incidentally, by updating
the code that reads where the tip of the head is to use
show-ref, it makes it safe to use in a repository whose refs are
pack-pruned.

I noticed that other parts of the program are not yet pack-refs
safe, but tried to keep the changes to the minimum.

Signed-off-by: Junio C Hamano <junkio@cox.net>