git.git
16 years agosha1_file: avoid bogus "file exists" error message
Joey Hess [Thu, 20 Nov 2008 18:56:28 +0000 (13:56 -0500)]
sha1_file: avoid bogus "file exists" error message

This avoids the following misleading error message:

error: unable to create temporary sha1 filename ./objects/15: File exists

mkstemp can fail for many reasons, one of which, ENOENT, can occur if
the directory for the temp file doesn't exist. create_tmpfile tried to
handle this case by always trying to mkdir the directory, even if it
already existed. This caused errno to be clobbered, so one cannot tell
why mkstemp really failed, and it truncated the buffer to just the
directory name, resulting in the strange error message shown above.

Note that in both occasions that I've seen this failure, it has not been
due to a missing directory, or bad permissions, but some other, unknown
mkstemp failure mode that did not occur when I ran git again. This code
could perhaps be made more robust by retrying mkstemp, in case it was a
transient failure.

Signed-off-by: Joey Hess <joey@kitenet.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix t4030-diff-textconv.sh
Alex Riesen [Wed, 19 Nov 2008 11:14:50 +0000 (12:14 +0100)]
Fix t4030-diff-textconv.sh

Avoid passing cygwin pathnames to Perl. Some Perls have problems using them

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix handle leak in sha1_file/unpack_objects if there were damaged object data
Alex Riesen [Wed, 19 Nov 2008 11:14:05 +0000 (12:14 +0100)]
Fix handle leak in sha1_file/unpack_objects if there were damaged object data

In the case of bad packed object CRC, unuse_pack wasn't called after
check_pack_crc which calls use_pack.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-commit.txt - mention that files listed on the command line must be known to git.
Mark Burton [Tue, 18 Nov 2008 22:33:44 +0000 (22:33 +0000)]
git-commit.txt - mention that files listed on the command line must be known to git.

Signed-off-by: Mark Burton <markb@ordern.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: rev-list-options.txt: added --branches, --tags & --remotes.
Mark Burton [Mon, 17 Nov 2008 21:03:59 +0000 (21:03 +0000)]
Documentation: rev-list-options.txt: added --branches, --tags & --remotes.

Added simple descriptions of these options (based on description of --all).

Signed-off-by: Mark Burton <markb@ordern.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-branch: use strbuf in rename_branch()
Miklos Vajna [Mon, 17 Nov 2008 20:48:37 +0000 (21:48 +0100)]
builtin-branch: use strbuf in rename_branch()

In case the length of branch name is greather then PATH_MAX-11, we write
to unallocated memory otherwise.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-branch: use strbuf in fill_tracking_info()
Miklos Vajna [Mon, 17 Nov 2008 20:48:36 +0000 (21:48 +0100)]
builtin-branch: use strbuf in fill_tracking_info()

This is just about using the API, though in case of ~ 10^100 commits,
this would fix the problem of writing to unallocated memory as well. ;-)

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-branch: use strbuf in delete_branches()
Miklos Vajna [Mon, 17 Nov 2008 20:48:35 +0000 (21:48 +0100)]
builtin-branch: use strbuf in delete_branches()

In case the length of branch name is greather then PATH_MAX-7, we write
to unallocated memory otherwise.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Mon, 17 Nov 2008 16:30:14 +0000 (08:30 -0800)]
Merge branch 'maint'

* maint:
  request-pull: make usage string match manpage

16 years agoDocumentation: tutorial: add information about "git help" at the beginning
Christian Couder [Mon, 17 Nov 2008 15:43:04 +0000 (16:43 +0100)]
Documentation: tutorial: add information about "git help" at the beginning

Talking about "git help" is useful because it has a few more
features (like when using it without arguments or with "-a") and
it may work on non unix like platforms.

Also add a few links to git-help(1) in "See also" sections.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: user-manual: add information about "git help" at the beginning
Christian Couder [Mon, 17 Nov 2008 15:42:47 +0000 (16:42 +0100)]
Documentation: user-manual: add information about "git help" at the beginning

Talking about "git help" is useful because it has a few more
features (like when using it without arguments or with "-a") and
it may work on non unix like platforms.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-remote.c: plug a small memory leak in get_one_remote_for_updates()
Junio C Hamano [Mon, 17 Nov 2008 15:54:07 +0000 (07:54 -0800)]
builtin-remote.c: plug a small memory leak in get_one_remote_for_updates()

We know that the string pointed at by remote->name won't change.  It can
be borrowed as the key in the string_list without copying.  Other parts of
existing code such as get_one_entry() already rely on this fact.

Noticed by Cheng Renquan.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote: match usage string with the manual pages
Cheng Renquan [Mon, 17 Nov 2008 11:15:49 +0000 (19:15 +0800)]
git-remote: match usage string with the manual pages

Signed-off-by: Cheng Renquan <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorequest-pull: make usage string match manpage
Stefan Naewe [Mon, 17 Nov 2008 08:57:19 +0000 (09:57 +0100)]
request-pull: make usage string match manpage

The usage string of 'git request-pull' differs from he manpage
which gives the correct 'synopsis'.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Sun, 16 Nov 2008 23:51:11 +0000 (15:51 -0800)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: Fix the search bar destruction handler.
  Update the po template
  git-gui: Implement automatic rescan after Tool execution.
  git-gui: Allow Tools request arguments from the user.
  git-gui: Add a Tools menu for arbitrary commands.
  git-gui: Fix the after callback execution in rescan.
  git-gui: Implement system-wide configuration handling.
  git-gui: try to provide a window icon under X

16 years agogit-gui: Fix the search bar destruction handler.
Alexander Gavrilov [Thu, 13 Nov 2008 18:52:52 +0000 (21:52 +0300)]
git-gui: Fix the search bar destruction handler.

Since delete_this is an ordinary function, it
should not be passed to cb; otherwise it produces
errors when blame windows are closed. Unfortunately,
it is not noticeable when blame is shown in the
master window, so I missed this bug.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUpdate the po template
Shawn O. Pearce [Sun, 16 Nov 2008 21:56:55 +0000 (13:56 -0800)]
Update the po template

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: Implement automatic rescan after Tool execution.
Alexander Gavrilov [Sun, 16 Nov 2008 18:46:51 +0000 (21:46 +0300)]
git-gui: Implement automatic rescan after Tool execution.

The Tools menu is generally intended for commands that
affect the working directory or repository state. Thus,
the user would usually want to initiate rescan after
execution of a tool. This commit implements it.

In case somebody would want to avoid rescanning after
certain tools, it also adds an option that controls it,
although it is not made available through the Add dialog.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: Allow Tools request arguments from the user.
Alexander Gavrilov [Sun, 16 Nov 2008 18:46:50 +0000 (21:46 +0300)]
git-gui: Allow Tools request arguments from the user.

While static commands are already useful, some tools need
additional parameters to reach maximum usability. This
commit adds support for passing them one revision name
parameter, and one arbitrary string. With this addition,
the tools menu becomes flexible enough to implement basic
rebase support:

[core]
        editor = kwrite
[guitool "Rebase/Abort"]
        cmd = git rebase --abort
        confirm = yes
[guitool "Rebase/Continue"]
        cmd = git rebase --continue
[guitool "Rebase/Skip Commit"]
        cmd = git rebase --skip
        confirm = yes
[guitool "Rebase/Start..."]
        cmd = git rebase $ARGS $REVISION $CUR_BRANCH
        title = Start Rebase
        prompt = Rebase Current Branch
        argprompt = Flags
        revprompt = New Base
        revunmerged = yes

Some of the options, like title or prompt, are intentionally
not included in the Add dialog to avoid clutter. Also, the
dialog handles argprompt and revprompt as boolean vars.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: Add a Tools menu for arbitrary commands.
Alexander Gavrilov [Sun, 16 Nov 2008 18:46:49 +0000 (21:46 +0300)]
git-gui: Add a Tools menu for arbitrary commands.

Due to the emphasis on scriptability in the git
design, it is impossible to provide 100% complete
GUI. Currently unaccounted areas include git-svn
and other source control system interfaces, TopGit,
all custom scripts.

This problem can be mitigated by providing basic
customization capabilities in Git Gui. This commit
adds a new Tools menu, which can be configured
to contain items invoking arbitrary shell commands.

The interface is powerful enough to allow calling
both batch text programs like git-svn, and GUI editors.
To support the latter use, the commands have access
to the name of the currently selected file through
the environment.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: Fix the after callback execution in rescan.
Alexander Gavrilov [Sun, 16 Nov 2008 18:46:48 +0000 (21:46 +0300)]
git-gui: Fix the after callback execution in rescan.

The rescan function receives a callback command
as its parameter, which is supposed to be executed
after the scan finishes. It is generally used to
update status. However, rescan may initiate a
loading of a diff, which always calls ui_ready after
completion. If the after handler is called before
that, ui_ready will override the new status.

This commit ensures that the after callback is
properly threaded through the diff machinery.

Since it uncovered the fact that force_first_diff
actually didn't work due to an undeclared global
variable, and the desired effects appeared only
because of the race condition between the diff
system and the rescan callback, I also reimplement
this function to make it behave as originally
intended.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: Implement system-wide configuration handling.
Alexander Gavrilov [Sun, 16 Nov 2008 18:46:47 +0000 (21:46 +0300)]
git-gui: Implement system-wide configuration handling.

With the old implementation any system-wide options appear
to be set locally in the current repository. This commit
adds explicit handling of system options, essentially
interpreting them as customized default_config.

The difficulty in interpreting system options stems from
the fact that simple 'git config' lists all values, while
'git config --global' only values set in ~/.gitconfig,
excluding both local and system options.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-gui: try to provide a window icon under X
Giuseppe Bilotta [Sun, 16 Nov 2008 02:42:32 +0000 (03:42 +0100)]
git-gui: try to provide a window icon under X

When running under X, we try to set up a window icon by providing a
hand-crafted 16x16 Tk photo image equivalent to the .ico. Wrap in a
catch because the earlier Tcl/Tk 8.4 releases didn't provide the 'wm
iconphoto' command.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Junio C Hamano [Sun, 16 Nov 2008 08:49:20 +0000 (00:49 -0800)]
Merge branch 'maint'

* maint:
  Teach ls-files --with-tree=<tree> to work with options other than -c
  builtin-ls-files.c: coding style fix.

16 years agoMerge branch 'bc/maint-keep-pack'
Junio C Hamano [Sun, 16 Nov 2008 08:49:02 +0000 (00:49 -0800)]
Merge branch 'bc/maint-keep-pack'

* bc/maint-keep-pack:
  repack: only unpack-unreachable if we are deleting redundant packs

16 years agoMerge branch 'jk/commit-v-strip'
Junio C Hamano [Sun, 16 Nov 2008 08:48:59 +0000 (00:48 -0800)]
Merge branch 'jk/commit-v-strip'

* jk/commit-v-strip:
  status: show "-v" diff even for initial commit
  wt-status: refactor initial commit printing
  define empty tree sha1 as a macro

16 years agoFix machine-parseability of 'git log --source'
Linus Torvalds [Sat, 15 Nov 2008 18:02:01 +0000 (10:02 -0800)]
Fix machine-parseability of 'git log --source'

The space between the commit and the source attribute is not easily
machine-parseable: if we combine --source with --parents and give a SHA1
as a starting point, it's unnecessarily hard to see where the list of
parents ends and the source decoration begins.

Example:
git show --parents --source $(git rev-list HEAD)

which is admittedly contrived, but can easily happen in scripting.

So use a <tab> instead of a space as the source separator.

The other decorations didn't have this issue, because they were surrounded
by parenthesis, so it's obvious that they aren't parent SHA1's.

It so happens that _visually_ this makes no difference for "git log
--source", since "commit <40-char SHA1>" is 47 characters, so both a space
and a <tab> will end up showing as a single commit. Of course, with
'--pretty=oneline' or '--parents' or '--abbrev-commit' you'll see the
difference.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTeach ls-files --with-tree=<tree> to work with options other than -c
Junio C Hamano [Sun, 16 Nov 2008 08:10:25 +0000 (00:10 -0800)]
Teach ls-files --with-tree=<tree> to work with options other than -c

Originally --with-tree=<tree> was designed for the sole purpose of
checking if a given pathspec makes sense as a parameter to git-commit
using it in conjunction with --error-unmatch.  It had logic to avoid
showing the same entry (one came from the original index, another from the
overlayed tree) twice so that it works with -c (i.e. "show-cached"), but
otherwise it was not designed to work with the flags such as -m, -d, etc.

This teaches the same logic to cover the codepath for -m and -d.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-ls-files.c: coding style fix.
Junio C Hamano [Sun, 16 Nov 2008 08:15:43 +0000 (00:15 -0800)]
builtin-ls-files.c: coding style fix.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Sat, 15 Nov 2008 06:12:38 +0000 (22:12 -0800)]
Merge branch 'maint'

* maint:
  Documentation: git-svn: fix example for centralized SVN clone
  Documentation: fix links to "everyday.html"
  revision.c: use proper data type in call to sizeof() within xrealloc

16 years agoDocumentation: git-svn: fix example for centralized SVN clone
Jan Krüger [Fri, 14 Nov 2008 17:45:14 +0000 (18:45 +0100)]
Documentation: git-svn: fix example for centralized SVN clone

The example that tells users how to centralize the effort of the initial
git svn clone operation doesn't work properly. It uses rebase but that
only works if HEAD exists. This adds one extra command to create a
somewhat sensible HEAD that should work in all cases.

Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: fix links to "everyday.html"
Christian Couder [Fri, 14 Nov 2008 12:26:47 +0000 (13:26 +0100)]
Documentation: fix links to "everyday.html"

In some places the links are wrong. They should be:
"link:everyday.html", instead of: "linkgit:everyday[7]".
This patch fixes that.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorevision.c: use proper data type in call to sizeof() within xrealloc
Brandon Casey [Thu, 13 Nov 2008 20:20:37 +0000 (14:20 -0600)]
revision.c: use proper data type in call to sizeof() within xrealloc

A type char** was being used instead of char*.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorepack: only unpack-unreachable if we are deleting redundant packs
Brandon Casey [Thu, 13 Nov 2008 20:11:46 +0000 (14:11 -0600)]
repack: only unpack-unreachable if we are deleting redundant packs

The -A option calls pack-objects with the --unpack-unreachable option so
that the unreachable objects in local packs are left in the local object
store loose. But if the -d option to repack was _not_ used, then these
unpacked loose objects are redundant and unnecessary.

Update tests in t7701.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: New GUI configuration and command-line options.
Alexander Gavrilov [Thu, 13 Nov 2008 17:28:49 +0000 (20:28 +0300)]
Documentation: New GUI configuration and command-line options.

Add information on new git-gui and gitk command-line options,
configuration variables, and the encoding attribute.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Fri, 14 Nov 2008 17:21:08 +0000 (09:21 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: Update git-svn to use the ability to place temporary files within repository directory
  Git.pm: Make _temp_cache use the repository directory
  git-svn: proper detection of bare repositories
  git-svn: respect i18n.commitencoding config
  git-svn: don't escape tilde ('~') for http(s) URLs

16 years agogit-svn: Update git-svn to use the ability to place temporary files within repository...
Marten Svanfeldt (dev) [Wed, 12 Nov 2008 16:38:06 +0000 (00:38 +0800)]
git-svn: Update git-svn to use the ability to place temporary files within repository directory

This fixes git-svn within msys where Perl will provide temporary files with path
such as /tmp while the git suit expects native Windows paths.

Signed-off-by: Marten Svanfeldt <developer@svanfeldt.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
16 years agoGit.pm: Make _temp_cache use the repository directory
Marten Svanfeldt (dev) [Thu, 13 Nov 2008 12:04:09 +0000 (20:04 +0800)]
Git.pm: Make _temp_cache use the repository directory

Update the usage of File::Temp->tempfile to place the temporary files
within the repository directory instead of just letting Perl decide what
directory to use, given there is a repository specified when requesting
the temporary file.

This is needed to be able to fix git-svn on msys as msysperl generates
paths with UNIX-style paths (/tmp/xxx) while the git tools expect natvie
path format (c:/..). The repository dir is stored in native format so by
using it as the base directory for temporary files we always get a
usable native full path.

Signed-off-by: Marten Svanfeldt <developer@svanfeldt.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
16 years agogit-svn: proper detection of bare repositories
Deskin Miller [Thu, 6 Nov 2008 05:07:39 +0000 (00:07 -0500)]
git-svn: proper detection of bare repositories

When in a bare repository (or .git, for that matter), git-svn would fail
to initialise properly, since git rev-parse --show-cdup would not output
anything.  However, git rev-parse --show-cdup actually returns an error
code if it's really not in a git directory.

Fix the issue by checking for an explicit error from git rev-parse, and
setting $git_dir appropriately if instead it just does not output.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
16 years agogit-svn: respect i18n.commitencoding config
Eric Wong [Thu, 30 Oct 2008 06:49:26 +0000 (23:49 -0700)]
git-svn: respect i18n.commitencoding config

SVN itself always stores log messages in the repository as
UTF-8.  git always stores/retrieves everything as raw binary
data with no transformations whatsoever.

To interact with SVN, we need to encode log messages as UTF-8
before sending them to SVN, as SVN cannot do it for us.  When
retrieving log messages from SVN, we also need to (attempt to)
reencode the UTF-8 log message back to the user-specified commit
encoding.

Note, handling i18n.logoutputencoding for "git svn log" also
needs to be done in a future change.

Also, this change only deals with the encoding of commit
messages and nothing else (path names, blob content, ...).

In-Reply-To: <8b168cfb0810282014r789ac01dnec51824de1078f0@mail.gmail.com>
James North <tocapicha@gmail.com> wrote:
> Hi,
>
> I'm using git-svn on a system with ISO-8859-1 encoding. The problem is
> when I try to use "git svn dcommit" to send changes to a remote svn
> (also ISO-8859-1).
>
> Seems like git-svn is sending commit messages with utf-8 (just a
> guessing...) and they look bad on the remote svn log. E.g. "Ca?\241a
> de cami?\243n"
>
> I have tried using i18n.commitencoding=ISO-8859-1 as suggested by the
> warning when doing "git svn dcommit" but messages still are sent with
> wrong encoding.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agogit-svn: don't escape tilde ('~') for http(s) URLs
Eric Wong [Tue, 21 Oct 2008 21:12:15 +0000 (14:12 -0700)]
git-svn: don't escape tilde ('~') for http(s) URLs

Thanks to Jose Carlos Garcia Sogo and Björn Steinbrink for the
bug report.

On 2008.10.18 23:39:19 +0200, Björn Steinbrink wrote:
> Hi,
>
> Jose Carlos Garcia Sogo reported on #git that a git-svn clone of this
> svn repo fails for him:
> https://sucs.org/~welshbyte/svn/backuptool/trunk
>
> I can reproduce that here with:
> git-svn version 1.6.0.2.541.g46dc1.dirty (svn 1.5.1)
>
> The error message I get is:
> Apache got a malformed URI: Unusable URI: it does not refer to this
> repository at /usr/local/libexec/git-core/git-svn line 4057
>
> strace revealed that git-svn url-encodes ~ while svn does not do that.
>
> For svn we have:
> write(5, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
> <S:src-path>https://sucs.org/~welshbyte/svn/backuptool/trunk</S:src-path>...
>
> While git-svn shows:
> write(7, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
> <S:src-path>https://sucs.org/%7Ewelshbyte/svn/backuptool/trunk</S:src-path>...

Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Fri, 14 Nov 2008 06:30:17 +0000 (22:30 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: proper detection of bare repositories
  git-svn: respect i18n.commitencoding config
  git-svn: don't escape tilde ('~') for http(s) URLs

16 years agoMerge branch 'maint'
Junio C Hamano [Fri, 14 Nov 2008 05:58:07 +0000 (21:58 -0800)]
Merge branch 'maint'

* maint:
  date/time: do not get confused by fractional seconds

16 years agodate/time: do not get confused by fractional seconds
Linus Torvalds [Sun, 17 Aug 2008 04:25:40 +0000 (21:25 -0700)]
date/time: do not get confused by fractional seconds

The date/time parsing code was confused if the input time HH:MM:SS is
followed by fractional seconds.  Since we do not record anything finer
grained than seconds, we could just drop fractional part, but there is a
twist.

We have taught people that not just spaces but dot can be used as word
separators when spelling things like:

    $ git log --since 2.days
    $ git show @{12:34:56.7.days.ago}

and we shouldn't mistake "7" in the latter example as a fraction and
discard it.

The rules are:

 - valid days of month/mday are always single or double digits.

 - valid years are either two or four digits

   No, we don't support the year 600 _anyway_, since our encoding is based
   on the UNIX epoch, and the day we worry about the year 10,000 is far
   away and we can raise the limit to five digits when we get closer.

 - Other numbers (eg "600 days ago") can have any number of digits, but
   they cannot start with a zero. Again, the only exception is for
   two-digit numbers, since that is fairly common for dates ("Dec 01" is
   not unheard of)

So that means that any milli- or micro-second would be thrown out just
because the number of digits shows that it cannot be an interesting date.

A milli- or micro-second can obviously be a perfectly fine number
according to the rules above, as long as it doesn't start with a '0'. So
if we have

12:34:56.123

then that '123' gets parsed as a number, and we remember it. But because
it's bigger than 31, we'll never use it as such _unless_ there is
something after it to trigger that use.

So you can say "12:34:56.123.days.ago", and because of the "days", that
123 will actually be meaninful now.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Thu, 13 Nov 2008 16:28:51 +0000 (08:28 -0800)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Fix linehtag undefined error with file highlighting
  gitk: Fix commit encoding support
  gitk: Fix transient windows on Win32 and MacOS
  gitk: Add accelerators to frequently used menu commands
  gitk: Implement a user-friendly Edit View dialog
  gitk: Improve cherry-pick error handling
  gitk: Make cherry-pick call git-citool on conflicts
  gitk: Make gitk dialog windows transient
  gitk: Add Return and Escape bindings to dialogs
  gitk: Cope with unmerged files in local changes
  gitk: Make "show origin of this line" work on fake commits
  gitk: Unify handling of merge diffs with normal 2-way diffs
  gitk: Make the background color of marked lines configurable
  gitk: Add a menu item to show where a given line comes from
  gitk: Fix some off-by-one errors in computing which line to blame
  gitk: Allow starting gui blame for a specific line
  gitk: Fix file list context menu for merge commits
  gitk: Allow forcing branch creation if it already exists

16 years agogitk: Fix linehtag undefined error with file highlighting
Paul Mackerras [Thu, 13 Nov 2008 11:39:00 +0000 (22:39 +1100)]
gitk: Fix linehtag undefined error with file highlighting

Occasionally gitk will throw a Tcl error complaining that linehtag(n)
is undefined when.  It happens when the commit list is still growing
(e.g. when updating the commit list) and gitk is set to highlight
commits that affect certain file(s).  What happens is that the changes
to the commit list set need_redisplay to indicate that the display
needs to be redrawn.  That causes the next call to drawcommits to call
clear_display, which unsets iddrawn and thus ensures that readfhighlight
won't call bolden on any rows that have moved.  However, it is possible
for readfhighlight to be called after the commit list has changed but
before drawcommits has run, meaning that readfhighlight will potentially
think that rows have been drawn when they haven't, because of the
change in the id -> row mapping (and the fact that iddrawn is indexed
by id but line[hnd]tag are indexed by row number).

This fixes it (and also optimizes things a little) by making bolden
and bolden_name check need_redisplay before doing anything.  If
need_redisplay is set, then there is no point doing anything because
the whole display is about to get cleared and redrawn, and it avoids
looking up line[hn]tag using stale row numbers.

Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agogitk: Fix commit encoding support
Alexander Gavrilov [Sun, 9 Nov 2008 15:06:07 +0000 (18:06 +0300)]
gitk: Fix commit encoding support

This commit fixes two problems with commit encodings:

1) git-log actually uses i18n.logoutputencoding to generate
   its output, and falls back to i18n.commitencoding only
   when that option is not set.  Thus, gitk should use its
   value to read the results, if available.

2) The readcommit function did not process encodings at all.
   This led to randomly appearing misconverted commits if
   the commit encoding differed from the current locale.

Now commit messages should be displayed correctly, except
when logoutputencoding is set to an encoding that cannot
represent charecters in the message.  For example, it is
impossible to convert Japanese characters from Shift-JIS
to CP-1251 (although the reverse conversion works).

The reason for using git log to read the commit and then getting
Tcl to convert its output is that is essentially what happens in
the normal path through getcommitlines, hence there is less chance
for unintended differences in how commits are processed in
getcommitlines and do_readcommit.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agogitk: Fix transient windows on Win32 and MacOS
Alexander Gavrilov [Tue, 11 Nov 2008 20:55:42 +0000 (23:55 +0300)]
gitk: Fix transient windows on Win32 and MacOS

Transient windows cause problems on these platforms:

- On Win32 the windows appear in the top left corner
  of the screen. In order to fix it, this patch causes
  them to be explicitly centered on their parents by
  an idle handler.

- On MacOS with Tk 8.4 they appear without a title bar.
  Since it is clearly unacceptable, this patch disables
  transient on that platform.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agogitk: Add accelerators to frequently used menu commands
Alexander Gavrilov [Sun, 9 Nov 2008 10:00:45 +0000 (13:00 +0300)]
gitk: Add accelerators to frequently used menu commands

This commit documents keyboard accelerators used for menu
commands in the menu, as it is usually done, and adds some
more, e.g. F4 to invoke Edit View (or New View if the current
view is the un-editable "All files" view).

The changes include a workaround for handling Shift-F4 on
systems where XKB binds special XF86_Switch_VT_* symbols
to Ctrl-Alt-F* combinations.  Tk often receives these codes
when Shift-F* is pressed, so it is necessary to bind the
relevant actions to them as well.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agoUpdate draft release notes to 1.6.1
Junio C Hamano [Thu, 13 Nov 2008 06:47:15 +0000 (22:47 -0800)]
Update draft release notes to 1.6.1

A large number of topics are merged to prepare for -rc0 now.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'jn/gitweb-customlinks'
Junio C Hamano [Thu, 13 Nov 2008 06:27:53 +0000 (22:27 -0800)]
Merge branch 'jn/gitweb-customlinks'

* jn/gitweb-customlinks:
  gitweb: Better processing format string in custom links in navbar

16 years agoMerge branch 'gb/gitweb-snapshot-pathinfo'
Junio C Hamano [Thu, 13 Nov 2008 06:27:49 +0000 (22:27 -0800)]
Merge branch 'gb/gitweb-snapshot-pathinfo'

* gb/gitweb-snapshot-pathinfo:
  gitweb: embed snapshot format parameter in PATH_INFO
  gitweb: retrieve snapshot format from PATH_INFO
  gitweb: make the supported snapshot formats array global

16 years agoMerge branch 'ds/uintmax-config' (early part)
Junio C Hamano [Thu, 13 Nov 2008 06:27:33 +0000 (22:27 -0800)]
Merge branch 'ds/uintmax-config' (early part)

* 'ds/uintmax-config' (early part):
  Add autoconf tests for pthreads
  Make Pthread link flags configurable
  Add Makefile check for FreeBSD 4.9-SECURITY
  Build: add NO_UINTMAX_T to support ancient systems

Conflicts:
Makefile

16 years agoMerge branch 'jk/maint-commit-v-strip'
Junio C Hamano [Thu, 13 Nov 2008 06:26:56 +0000 (22:26 -0800)]
Merge branch 'jk/maint-commit-v-strip'

* jk/maint-commit-v-strip:
  commit: Fix stripping of patch in verbose mode.

16 years agoMerge branch 'np/pack-safer'
Junio C Hamano [Thu, 13 Nov 2008 06:26:35 +0000 (22:26 -0800)]
Merge branch 'np/pack-safer'

* np/pack-safer:
  t5303: fix printf format string for portability
  t5303: work around printf breakage in dash
  pack-objects: don't leak pack window reference when splitting packs
  extend test coverage for latest pack corruption resilience improvements
  pack-objects: allow "fixing" a corrupted pack without a full repack
  make find_pack_revindex() aware of the nasty world
  make check_object() resilient to pack corruptions
  make packed_object_info() resilient to pack corruptions
  make unpack_object_header() non fatal
  better validation on delta base object offsets
  close another possibility for propagating pack corruption

16 years agoMerge branch 'mk/maint-cg-push'
Junio C Hamano [Thu, 13 Nov 2008 06:26:24 +0000 (22:26 -0800)]
Merge branch 'mk/maint-cg-push'

* mk/maint-cg-push:
  git push: Interpret $GIT_DIR/branches in a Cogito compatible way

Conflicts:
t/t5516-fetch-push.sh

16 years agoMerge branch 'bc/maint-keep-pack'
Junio C Hamano [Thu, 13 Nov 2008 06:00:43 +0000 (22:00 -0800)]
Merge branch 'bc/maint-keep-pack'

* bc/maint-keep-pack:
  t7700: test that 'repack -a' packs alternate packed objects
  pack-objects: extend --local to mean ignore non-local loose objects too
  sha1_file.c: split has_loose_object() into local and non-local counterparts
  t7700: demonstrate mishandling of loose objects in an alternate ODB
  builtin-gc.c: use new pack_keep bitfield to detect .keep file existence
  repack: do not fall back to incremental repacking with [-a|-A]
  repack: don't repack local objects in packs with .keep file
  pack-objects: new option --honor-pack-keep
  packed_git: convert pack_local flag into a bitfield and add pack_keep
  t7700: demonstrate mishandling of objects in packs with a .keep file

16 years agoMerge branch 'mv/remote-rename'
Junio C Hamano [Thu, 13 Nov 2008 06:00:25 +0000 (22:00 -0800)]
Merge branch 'mv/remote-rename'

* mv/remote-rename:
  git-remote: document the migration feature of the rename subcommand
  git-remote rename: migrate from remotes/ and branches/
  remote: add a new 'origin' variable to the struct
  Implement git remote rename

16 years agoMerge branch 'jk/deny-push-to-current'
Junio C Hamano [Thu, 13 Nov 2008 05:56:14 +0000 (21:56 -0800)]
Merge branch 'jk/deny-push-to-current'

* jk/deny-push-to-current:
  receive-pack: detect push to current branch of non-bare repo
  t5516: refactor oddball tests

16 years agoMerge branch 'dl/xdiff'
Junio C Hamano [Thu, 13 Nov 2008 05:51:30 +0000 (21:51 -0800)]
Merge branch 'dl/xdiff'

* dl/xdiff:
  xdiff: give up scanning similar lines early

16 years agoMerge branch 'lt/decorate'
Junio C Hamano [Thu, 13 Nov 2008 05:51:19 +0000 (21:51 -0800)]
Merge branch 'lt/decorate'

* lt/decorate:
  rev-list documentation: clarify the two parts of history simplification
  Document "git log --simplify-by-decoration"
  Document "git log --source"
  revision traversal: '--simplify-by-decoration'
  Make '--decorate' set an explicit 'show_decorations' flag
  revision: make tree comparison functions take commits rather than trees
  Add a 'source' decorator for commits

Conflicts:
Documentation/rev-list-options.txt

16 years agoMerge branch 'jk/diff-convfilter'
Junio C Hamano [Thu, 13 Nov 2008 05:50:58 +0000 (21:50 -0800)]
Merge branch 'jk/diff-convfilter'

* jk/diff-convfilter:
  enable textconv for diff in verbose status/commit
  wt-status: load diff ui config
  only textconv regular files
  userdiff: require explicitly allowing textconv
  refactor userdiff textconv code

Conflicts:
t/t4030-diff-textconv.sh

16 years agoMerge branch 'jk/diff-convfilter-test-fix'
Junio C Hamano [Thu, 13 Nov 2008 05:50:41 +0000 (21:50 -0800)]
Merge branch 'jk/diff-convfilter-test-fix'

* jk/diff-convfilter-test-fix:
  Avoid using non-portable `echo -n` in tests.
  add userdiff textconv tests
  document the diff driver textconv feature
  diff: add missing static declaration

Conflicts:
Documentation/gitattributes.txt

16 years agoMerge branch 'st/tag'
Junio C Hamano [Thu, 13 Nov 2008 05:49:25 +0000 (21:49 -0800)]
Merge branch 'st/tag'

* st/tag:
  tag: Add more tests about mixing incompatible modes and options
  tag: Check that options are only allowed in the appropriate mode

16 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Thu, 13 Nov 2008 05:12:41 +0000 (21:12 -0800)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: Request blame metadata in utf-8.
  git-gui: Add the Show SSH Key item to the clone dialog.
  git-gui: Fix focus transition in the blame viewer.

16 years agot7700: test that 'repack -a' packs alternate packed objects
Brandon Casey [Thu, 13 Nov 2008 00:50:26 +0000 (18:50 -0600)]
t7700: test that 'repack -a' packs alternate packed objects

Previously, when 'repack -a' was called and there were no packs in the local
repository without a .keep file, the repack would fall back to calling
pack-objects with '--unpacked --incremental'. This resulted in the created
pack file, if any, to be missing the packed objects in the alternate object
store. Test that this specific case has been fixed.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.html: Update the links to stale versions
Junio C Hamano [Wed, 12 Nov 2008 23:04:54 +0000 (15:04 -0800)]
git.html: Update the links to stale versions

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Wed, 12 Nov 2008 23:03:57 +0000 (15:03 -0800)]
Merge branch 'maint'

* maint:
  Start 1.6.0.5 cycle
  Fix pack.packSizeLimit and --max-pack-size handling
  checkout: Fix "initial checkout" detection
  Remove the period after the git-check-attr summary

Conflicts:
RelNotes

16 years agoStart 1.6.0.5 cycle
Junio C Hamano [Wed, 12 Nov 2008 23:03:03 +0000 (15:03 -0800)]
Start 1.6.0.5 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix pack.packSizeLimit and --max-pack-size handling
Nicolas Pitre [Wed, 12 Nov 2008 18:23:58 +0000 (13:23 -0500)]
Fix pack.packSizeLimit and --max-pack-size handling

If the limit was sufficiently low, having a single object written
could bust the limit (by design), but caused the remaining allowed
size to go negative for subsequent objects, which for an unsigned
variable is a rather huge limit.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorev-list documentation: clarify the two parts of history simplification
Santi Béjar [Wed, 12 Nov 2008 10:51:28 +0000 (11:51 +0100)]
rev-list documentation: clarify the two parts of history simplification

One set of options and parameters determine what commits are involved in
the simplification process, and another set of options determine how the
simplification is done.  Clarify their distinction at the beginning.

Signed-off-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocument "git log --simplify-by-decoration"
Nanako Shiraishi [Mon, 10 Nov 2008 09:58:17 +0000 (18:58 +0900)]
Document "git log --simplify-by-decoration"

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocheckout: Fix "initial checkout" detection
Junio C Hamano [Wed, 12 Nov 2008 19:52:35 +0000 (11:52 -0800)]
checkout: Fix "initial checkout" detection

Earlier commit 5521883 (checkout: do not lose staged removal, 2008-09-07)
tightened the rule to prevent switching branches from losing local
changes, so that staged removal of paths can be protected, while
attempting to keep a loophole to still allow a special case of switching
out of an un-checked-out state.

However, the loophole was made a bit too tight, and did not allow
switching from one branch (in an un-checked-out state) to check out
another branch.

The change to builtin-checkout.c in this commit loosens it to allow this,
by not insisting the original commit and the new commit to be the same.

It also introduces a new function, is_index_unborn (and an associated
macro, is_cache_unborn), to check if the repository is truly in an
un-checked-out state more reliably, by making sure that $GIT_INDEX_FILE
did not exist when populating the in-core index structure.  A few places
the earlier commit 5521883 added the check for the initial checkout
condition are updated to use this function.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agostatus: show "-v" diff even for initial commit
Jeff King [Wed, 12 Nov 2008 08:23:37 +0000 (03:23 -0500)]
status: show "-v" diff even for initial commit

Since we can use the same "diff against empty tree" trick as
we do for the non-initial case, it is trivial to make this
work.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'jk/maint-commit-v-strip' into jk/commit-v-strip
Junio C Hamano [Wed, 12 Nov 2008 21:54:53 +0000 (13:54 -0800)]
Merge branch 'jk/maint-commit-v-strip' into jk/commit-v-strip

* jk/maint-commit-v-strip:
  commit: Fix stripping of patch in verbose mode.

16 years agocommit: Fix stripping of patch in verbose mode.
Jeff King [Wed, 12 Nov 2008 08:25:52 +0000 (03:25 -0500)]
commit: Fix stripping of patch in verbose mode.

When the "-v" option is given, we put diff of what is to be committed into
the commit template, and then strip it back out again after the user has
edited it.

We used to look for the diff by searching for the "diff --git a/"
header. With diff.mnemonicprefix set in the configuration, however, this
pattern does not match.  The pattern is loosened to cover this case.

Also, if the user puts their own diff in the message (e.g., as a sample
output), then we will accidentally trigger the pattern, removing part of
their output.

We can avoid doing this stripping altogether if the user didn't use "-v"
in the first place, so we know that any match we find will be a false
positive.

[jc: this fix was split out of a series originally meant for master.]

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agowt-status: refactor initial commit printing
Jeff King [Wed, 12 Nov 2008 08:21:39 +0000 (03:21 -0500)]
wt-status: refactor initial commit printing

When we showed the initial commit, we had no reference to
diff against, so we went through the cache manually.
Nowadays, however, we have a virtual empty tree commit, so
we can simply diff against that to get the same results.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodefine empty tree sha1 as a macro
Jeff King [Wed, 12 Nov 2008 08:17:52 +0000 (03:17 -0500)]
define empty tree sha1 as a macro

This can potentially be used in a few places, so let's make
it available to all parts of the code.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRemove the period after the git-check-attr summary
Matt Kraai [Fri, 7 Nov 2008 12:26:55 +0000 (04:26 -0800)]
Remove the period after the git-check-attr summary

The period at the end of the git-check-attr summary causes there to be
two periods after the summary in the git(1) manual page.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agopack-objects: extend --local to mean ignore non-local loose objects too
Brandon Casey [Mon, 10 Nov 2008 05:59:58 +0000 (23:59 -0600)]
pack-objects: extend --local to mean ignore non-local loose objects too

With this patch, --local means pack only local objects that are not already
packed.

Additionally, this fixes t7700 testing whether loose objects in an alternate
object database are repacked.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agosha1_file.c: split has_loose_object() into local and non-local counterparts
Brandon Casey [Mon, 10 Nov 2008 05:59:57 +0000 (23:59 -0600)]
sha1_file.c: split has_loose_object() into local and non-local counterparts

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot7700: demonstrate mishandling of loose objects in an alternate ODB
Brandon Casey [Mon, 10 Nov 2008 05:59:56 +0000 (23:59 -0600)]
t7700: demonstrate mishandling of loose objects in an alternate ODB

Loose objects residing in an alternate object database should not be packed
when the -l option to repack is used.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-gc.c: use new pack_keep bitfield to detect .keep file existence
Brandon Casey [Wed, 12 Nov 2008 17:59:07 +0000 (11:59 -0600)]
builtin-gc.c: use new pack_keep bitfield to detect .keep file existence

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorepack: do not fall back to incremental repacking with [-a|-A]
Brandon Casey [Wed, 12 Nov 2008 17:59:06 +0000 (11:59 -0600)]
repack: do not fall back to incremental repacking with [-a|-A]

When repack is called with either the -a or -A option, the user has
requested to repack all objects including those referenced by the
alternates mechanism. Currently, if there are no local packs without
.keep files, then repack will call pack-objects with the
'--unpacked --incremental' options which causes it to exclude alternate
packed objects. So, remove this fallback.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorepack: don't repack local objects in packs with .keep file
Brandon Casey [Wed, 12 Nov 2008 17:59:05 +0000 (11:59 -0600)]
repack: don't repack local objects in packs with .keep file

If the user created a .keep file for a local pack, then it can be inferred
that the user does not want those objects repacked.

This fixes the repack bug tested by t7700.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agopack-objects: new option --honor-pack-keep
Brandon Casey [Wed, 12 Nov 2008 17:59:04 +0000 (11:59 -0600)]
pack-objects: new option --honor-pack-keep

This adds a new option to pack-objects which will cause it to ignore an
object which appears in a local pack which has a .keep file, even if it
was specified for packing.

This option will be used by the porcelain repack.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agopacked_git: convert pack_local flag into a bitfield and add pack_keep
Brandon Casey [Wed, 12 Nov 2008 17:59:03 +0000 (11:59 -0600)]
packed_git: convert pack_local flag into a bitfield and add pack_keep

pack_keep will be set when a pack file has an associated .keep file.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot7700: demonstrate mishandling of objects in packs with a .keep file
Brandon Casey [Wed, 12 Nov 2008 17:59:02 +0000 (11:59 -0600)]
t7700: demonstrate mishandling of objects in packs with a .keep file

Objects residing in pack files that have an associated .keep file are not
supposed to be repacked into new pack files, but they are.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote: document the migration feature of the rename subcommand
Miklos Vajna [Mon, 10 Nov 2008 20:43:03 +0000 (21:43 +0100)]
git-remote: document the migration feature of the rename subcommand

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote rename: migrate from remotes/ and branches/
Miklos Vajna [Mon, 10 Nov 2008 20:43:01 +0000 (21:43 +0100)]
git-remote rename: migrate from remotes/ and branches/

Remote definition that came from $GIT_DIR/remotes/nick and
$GIT_DIR/branches/nick are migrated to [remotes "nick"] section in the
configuration file.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit push: Interpret $GIT_DIR/branches in a Cogito compatible way
Martin Koegler [Mon, 10 Nov 2008 21:47:11 +0000 (22:47 +0100)]
git push: Interpret $GIT_DIR/branches in a Cogito compatible way

Current git versions ignore everything after # (called <head> in the
following) when pushing. Older versions (before cf818348f1ab57),
interpret #<head> as part of the URL, which make git bail out.

As branches origin from Cogito, it is the best to correct this by using
the behaviour of cg-push, that is to push HEAD to remote refs/heads/<head>.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-diff: Add --staged as a synonym for --cached.
David Symonds [Wed, 29 Oct 2008 16:15:36 +0000 (09:15 -0700)]
git-diff: Add --staged as a synonym for --cached.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-p4: Cache git config for performance
John Chapman [Sat, 8 Nov 2008 03:22:49 +0000 (14:22 +1100)]
git-p4: Cache git config for performance

This makes git-p4 noticibly faster on Windows.

Signed-off-by: John Chapman <thestar@fussycoder.id.au>
Acked-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-p4: Support purged files and optimize memory usage
John Chapman [Sat, 8 Nov 2008 03:22:48 +0000 (14:22 +1100)]
git-p4: Support purged files and optimize memory usage

Purged files are handled as if they are merely deleted, which is not
entirely optimal, but I don't know of any other way to handle them.
File data is deleted from memory as early as they can, and they are more
efficiently handled, at (significant) cost to CPU usage.

Still need to handle p4 branches with spaces in their names.
Still need to make git-p4 clone more reliable.
 - Perhaps with a --continue option. (Sometimes the p4 server kills
 the connection)

Signed-off-by: John Chapman <thestar@fussycoder.id.au>
Acked-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix non-literal format in printf-style calls
Daniel Lowe [Mon, 10 Nov 2008 21:07:52 +0000 (16:07 -0500)]
Fix non-literal format in printf-style calls

These were found using gcc 4.3.2-1ubuntu11 with the warning:

    warning: format not a string literal and no format arguments

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Tue, 11 Nov 2008 22:46:31 +0000 (14:46 -0800)]
Merge branch 'maint'

* maint:
  Fix non-literal format in printf-style calls
  git-submodule: Avoid printing a spurious message.
  git ls-remote: make usage string match manpage
  Makefile: help people who run 'make check' by mistake

16 years agoFix non-literal format in printf-style calls
Daniel Lowe [Mon, 10 Nov 2008 21:07:52 +0000 (16:07 -0500)]
Fix non-literal format in printf-style calls

These were found using gcc 4.3.2-1ubuntu11 with the warning:

    warning: format not a string literal and no format arguments

Incorporated suggestions from Brandon Casey <casey@nrlssc.navy.mil>.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoremote: add a new 'origin' variable to the struct
Miklos Vajna [Mon, 10 Nov 2008 20:43:00 +0000 (21:43 +0100)]
remote: add a new 'origin' variable to the struct

This allows one to track where was the remote's original source, so that
it's possible to decide if it makes sense to migrate it to the config
format or not.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-submodule: Avoid printing a spurious message.
Alexandre Julliard [Tue, 11 Nov 2008 21:09:16 +0000 (22:09 +0100)]
git-submodule: Avoid printing a spurious message.

Fix 'git submodule update' to avoid printing a spurious "Maybe you want
to use 'update --init'?" once for every uninitialized submodule it
encounters.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit ls-remote: make usage string match manpage
Stefan Naewe [Tue, 11 Nov 2008 15:52:31 +0000 (16:52 +0100)]
git ls-remote: make usage string match manpage

The usage string of 'git ls-remote' is pretty terse. The manpage
however gives the correct 'synopsis'.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>