Commit graph

13165 commits

Author SHA1 Message Date
Mark Levedahl a028557113 git-gui: Makefile - Handle $DESTDIR on Cygwin
gg_libdir is converted to an absolute Windows path on Cygwin,
but a later step attempts to prefix $DESTDIR to install to a
staging directory. Explicitly separate the uses of gg_libdir for
these two purposes so installation to $DESTDIR will work.

Signed-off-by: Mark Levedahl <mdl123@verizon.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-17 22:58:24 -05:00
Christian Couder a1f8f5043c git-gui: add french glossary: glossary/fr.po
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-17 21:35:01 -05:00
Brandon Casey b531394d58 refs.c: rework ref_locks by abstracting from underlying struct lock_file
Instead of calling close_lock_file() and commit_lock_file() directly,
which take a struct lock_file argument, add two new functions:
close_ref() and commit_ref(), which handle calling the previous
lock_file functions and modifying the ref_lock structure.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 15:36:10 -08:00
Brandon Casey 4ed7cd3ab0 Improve use of lockfile API
Remove remaining double close(2)'s.  i.e. close() before
commit_locked_index() or commit_lock_file().

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 15:35:35 -08:00
Brandon Casey d6cf61bfd4 close_lock_file(): new function in the lockfile API
The lockfile API is a handy way to obtain a file that is cleaned
up if you die().  But sometimes you would need this sequence to
work:

 1. hold_lock_file_for_update() to get a file descriptor for
    writing;

 2. write the contents out, without being able to decide if the
    results should be committed or rolled back;

 3. do something else that makes the decision --- and this
    "something else" needs the lockfile not to have an open file
    descriptor for writing (e.g. Windows do not want a open file
    to be renamed);

 4. call commit_lock_file() or rollback_lock_file() as
    appropriately.

This adds close_lock_file() you can call between step 2 and 3 in
the above sequence.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 15:35:03 -08:00
Junio C Hamano 0c0478cac8 Document lockfile API
We have nice set of placeholders, but nobody stepped in to fill
the gap in the API documentation, so I am doing it myself.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 12:42:37 -08:00
Linus Torvalds c3b0dec509 Be more careful about updating refs
This makes write_ref_sha1() more careful: it actually checks the SHA1 of
the ref it is updating, and refuses to update a ref with an object that it
cannot find.

Perhaps more importantly, it also refuses to update a branch head with a
non-commit object. I don't quite know *how* the stable series maintainers
were able to corrupt their repository to have a HEAD that pointed to a tag
rather than a commit object, but they did. Which results in a totally
broken repository that cannot be cloned or committed on.

So make it harder for people to shoot themselves in the foot like that.

The test t1400-update-ref.sh is fixed at the same time, as it
assumed that the commands involved in the particular test would
not care about corrupted repositories whose refs point at
nonexistant bogus objects.  That assumption does not hold true
anymore.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 11:53:35 -08:00
Bill Lear 9f6fe82233 Correct spelling in diff.c comment
Correct a spelling mistake in a comment.

Signed-off-by: Bill Lear <rael@zopyra.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 11:37:58 -08:00
Dave Peticolas b98525e4bf Documentation: fix and clarify grammar in git-merge docs.
Signed-off-by: Dave Peticolas <dave@krondo.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 11:37:57 -08:00
Linus Torvalds 6232f62bc7 Make 'git fsck' complain about non-commit branches
Since having non-commits in branches is a no-no, and just means you cannot
commit on them, let's make fsck tell you when a branch is bad.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 11:37:57 -08:00
Linus Torvalds 7c3fd25dcf Make builtin-commit.c more careful about parenthood
When creating the commit object, be a whole lot more careful about making
sure that the parent lines really are valid parent lines. Check things
like MERGE_HEAD having proper SHA1 lines in it, and double-check that all
the parents exist and are actually commits.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 11:37:34 -08:00
Dmitry Potapov 28624193b2 treat any file with NUL as binary
There are two heuristics in Git to detect whether a file is binary
or text. One in xdiff-interface.c (which is taken from GNU diff)
relies on existence of the NUL byte at the beginning. However,
convert.c used a different heuristic, which relied on the percent
of non-printable symbols (less than 1% for text files).

Due to differences in detection whether a file is binary or not,
it was possible that a file that diff treats as binary could be
treated as text by CRLF conversion. This is very confusing for a
user who sees that 'git diff' shows the file as binary expects it
to be added as binary.

This patch makes is_binary to consider any file that contains at
least one NUL character as binary, to ensure that the heuristics
used for CRLF conversion is tighter than what is used by diff.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-16 09:10:34 -08:00
Shawn O. Pearce a41e45ea1c git-gui: Refresh file status description after hunk application
If we apply a hunk in either direction this may change the file's
status.  For example if a file is completely unstaged, and has at
least two hunks in it and the user stages one hunk the file will
change from "Modified, not staged" to "Portions staged for commit".

Resetting the file path causes our trace on this variable to fire;
that trace is used to update the file header in the diff viewer to
the file's current status.

Noticed by Johannes Sixt.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 01:29:39 -05:00
Shawn O. Pearce d36a8f73a4 git-gui: Allow 'Create New Repository' on existing directories
Often users setup a few source files and get a project rolling
before they create a Git repository for it.  In such cases the
core Git tools allow users to initialize a new repository by
simply running `git init` at the desired root level directory.

We need to allow the same situation in git-gui; if the user is
trying to make a new repository we should let them do that to any
location they chose.  If the directory already exists and already
has files contained within it we still should allow the user to
create a repository there.  However we still need to disallow
creating a repository on top of an existing repository.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 01:14:42 -05:00
Christian Couder daaa958fcc git-gui: Initial french translation
Here are some of the choices made to translate Git Gui to french:

- commit         -> "commit" (noun) or "commiter" (verb)
- stage (index)  -> "pré-commit" (noun) or "pré-commiter" (verb)
- (re)scan       -> "(re)synchroniser"
- reset          -> "réinitialiser"
- checkout       -> "emprunt" (noun) or "emprunter" (verb)
- revision expression -> "expression de révison"

I am not completely happy with these, but it's a start...

[sp: Inserted a missing LF in message on line 466]

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 01:01:19 -05:00
Christian Stimming d71b5659c5 git-gui: Improve German translation.
Change translation of "clone" back to "klonen" because "kopieren" is a
much broader term than this particular git action.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 00:50:20 -05:00
Peter Karlsson 10899a84d1 git-gui: Updated Swedish translation after mailing list review.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 00:50:10 -05:00
Christian Stimming d454460151 git-gui: Fix broken revert confirmation.
I broke this extremely cool feature in 1ac17950,
but it is rather easy to fix this. Sorry for that.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 00:44:14 -05:00
Christian Stimming 898ff9e9b4 git-gui: Update German translation
"revert" translated as "verwerfen".
"hunk" translated as "Kontext".
Several menu items reworded to be shorter.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 00:42:41 -05:00
Christian Stimming b3125ad3c1 git-gui: Update glossary: add term "hunk"
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-01-16 00:42:37 -05:00
Kristian Høgsberg 4439751dcb git-commit: fix double close(2) that can close a wrong file descriptor
The codepath to prepare index files for the temporary and next
index file was closing file descriptor it obtained from the
lockfile API by hand, without letting the API know that the fd
should not be doubly closed.

This is not usually a problem (except it may get EBADFD) but if
we opened another fd for an entirely unrelated purpose (say, an
fd used to mmap a packfile) between the time we close the fd to
the index file and the time we commit or rollback the lockfile
(causing it to also try closing the recorded fd), the lockfile
API will close an incorrect file descriptor that is still used
for an entirely unrelated purpose.

There's four close(fd) calls in prepare_index() and they're all
incorrect.  The open fd's are cleaned up in rollback_index_files() and
shouldn't be closed manually.  The patch below gets rid of the extra
close() calls and should fix the problem.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-15 17:33:53 -08:00
Mark Drago 1bc7c13af9 hg-to-git: improve popen calls
This patch improves all of the popen calls in hg-to-git.py by specifying the
template 'hg log' should use instead of calling 'hg log' and grepping for the
desired data.

Signed-off-by: Mark Drago <markdrago@gmail.com>
Acked-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-15 17:24:29 -08:00
Miklos Vajna 3e34526960 ls-remote: add -t and -h options.
These options are listed in the manpage (aliases for --tags/--heads) but they
were not handled.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-15 17:04:21 -08:00
Junio C Hamano 4e6738778b Squelch bogus progress output from git-rebase--interactive
The command repeats "Rebasing (1/1)" many times even when
there is only one task remaining, because mark_action_done() is
called to skip comment and empty lines in the TODO file.

This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-14 20:04:02 -08:00
Miklos Vajna 471a5ce5dd Add using merge subtree How-To
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-14 18:04:51 -08:00
Junio C Hamano 11c57e6a9a Fix git-rerere documentation
rerere.enabled is _not_ on by default.  The command is enabled if rr-cache
exists even when rerere.enabled is missing, and enabled or disabled by
explicitly setting the rerere.enabled variable.
2008-01-14 16:14:29 -08:00
Junio C Hamano e87e22d0f2 Revert "builtin-commit.c: remove useless check added by faulty cut and paste"
This reverts commit 16335fdd7a.

We are calling overlay_tree_on_cache() which does use CE_UPDATE
flag to mark duplicated entries, which is the same as the
codepath in git-ls-files with its --with-tree option.

Because the pathname ce->name is given to path_list_insert()
which does not allow duplicates, there is no breakage either way
from the correctness point of view in this codepath, unlike the
one in ls-files.  But avoiding unnecessary processing with a
single bit check is certainly better.
2008-01-14 13:54:24 -08:00
Jean-Luc Herren c60b528225 Make default pre-commit hook less noisy
This hook thought to have found a conflict marker any time it saw
a 7-character combination of any of the characters '<>=' at the
beginning of a line, whereas it should only look for the *same*
character to appear repeatedly.

Also, restrict it to match exactly 7 times, to avoid matching the
underlining with '='-characters often used in documentation.

Signed-off-by: Jean-Luc Herren <jlh@gmx.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-14 13:52:27 -08:00
Dan McGee cfc44a12fe cvsimport: remove last use of repo-config from git standard tools
git cvsimport was the last tool to use repo-config instead of config. Update
it to use plain git config.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-13 21:48:22 -08:00
Dan McGee 22fa97d4e0 Remove usage of git- (dash) commands from email hook
Switch all git command calls to use the git (space) command format, and
remove the use of git-repo-config in place of git config.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-13 21:48:20 -08:00
Junio C Hamano 16335fdd7a builtin-commit.c: remove useless check added by faulty cut and paste
2888605c64 (builtin-commit: fix
partial-commit support) mindlessly cut and pasted from
builtin-ls-files.c, and included a part that was meant to
exclude redundant path after "ls-files --with-tree" overlayed
the HEAD commit on top of the index.  This logic does not apply
to what git-commit does and should not have been copied, even
though it would not hurt.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-13 15:20:31 -08:00
Johannes Schindelin 646f3a149d [PATCH] gitk: make Ctrl "+" really increase the font size
Only Ctrl "=" was bound to increase the font size, probably because
English keyboards have the plus on the same key as the equal sign.
However, not the whole world is English, and at least with some
other keyboard layouts, Ctrl "+" did not work as documented.

Noticed by Stephan Hennig.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-14 08:55:04 +11:00
Linus Torvalds fa9dcf80e1 Fix performance regression for partial commits
When running "git commit paths" to create a partial commit, we
used to carefully build the temporary index so that we do not
lose the cached stat information.  The rewrite of the command in
C lost it by carelessly using read_tree().

This resurrects the earlier behaviour to keep the cached stat
information as much as possible by using one-tree merge logic.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-13 00:30:56 -08:00
Jeff King a8db80c224 git-clean: fix off-by-one memory access when given no arguments
The "seen" variable is used by match_pathspec, and must have
as many elements as there are in the given pathspec. We
create the pathspec either from the command line arguments
_or_ from just the current prefix.

Thus allocating "seen" based upon just argc is wrong, since
if argc == 0, then we still have one pathspec, the prefix,
but we don't allocate any space in "seen".

Signed-off-by: Jeff King <peff@peff.net>
Tested-by: İsmail Dönmez <ismail@pardus.org.tr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-12 11:10:09 -08:00
Eric Wong 98fa5b6851 git-svn: handle leading/trailing whitespace from svnsync revprops
Repositories generated by svnsync cannot be relied on to have
properly set revprops without newlines in UUIDs and URLs.  There
may be broken versions of svnsync out there that append extra
newlines to UUIDs, or the revprops could've been changed by
repository administrators at any time, too.

At least one repository we've come across has an embedded
newline erroneously set in the svnsync-uuid prop.  This is bad
because the trailing newline is taken as another record by the
Git.pm library, and the wantarray detection causes tmp_config()
to return an array with an empty-but-existing second element.

We will now strip leading and trailing whitespace both before
setting and after reading the uuid and url for svnsync values.
We will also force tmp_config to return a single scalar when
reading existing values.

SVN UUIDs should never have whitespace in them, and SVN
repository URLs should be URI-escaped, so neither of those
values we ever see in git-svn should actually have whitespace
in them.

Thanks to Dennis Schridde for the bug report and Junio for
helping diagnose this.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-12 10:58:06 -08:00
Junio C Hamano 145d08248e GIT 1.5.4-rc3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 21:40:55 -08:00
Junio C Hamano a5d7e3a2f1 RPM spec: include gitk message files.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 21:40:25 -08:00
Brandon Casey d3c2d9e5ff git-relink.txt: describe more clearly how hard linking occurs
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 18:06:55 -08:00
Michele Ballabio 80cd9cf9fa Document some default values in config.txt
This documents the default values of gc.auto, gc.autopacklimit
fetch.unpacklimit, receive.unpacklimit and transfer.unpacklimit.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 16:06:43 -08:00
Junio C Hamano 887ad79865 Merge ../gitk
* ../gitk:
  gitk: Update German translation.
  gitk: Fix typo in user message.
  gitk: Fix the Makefile to cope with systems lacking msgfmt
2008-01-11 00:51:30 -08:00
Christian Stimming 7d8856d091 gitk: Update German translation.
Now 100% complete (163 strings).

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 00:51:13 -08:00
Christian Stimming 55e34436e1 gitk: Fix typo in user message.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 00:51:13 -08:00
Charles Bailey 66e15a6b83 gitk: Fix the Makefile to cope with systems lacking msgfmt
The po2msg.sh script and the .gitignore in the po directory have been
shamelessly copied from the current git-gui.  This enables the top
level "make NO_MSGFMT" to work consistently for git across the git-gui
and gitk sub-projects.

This is the same effective patch that has previously been posted as a
git.git patch which more succinctly described the copying of
po/.gitignore and po/po2msg.sh from git-gui.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-11 00:51:08 -08:00
Junio C Hamano 8c3c7b2adb pack-objects: remove redundant and wrong call to deflateEnd()
We somehow called deflateEnd() on a stream that we have called
deflateEnd() on already.

In fact, the second deflateEnd() has always been returning
Z_STREAM_ERROR.  We just never checked the error return from
that particular deflateEnd().

The first one returns 0 for success.  We might want to tighten
the check even more to check that.

Noticed by Marco.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-10 23:27:39 -08:00
Jim Meyering 95693d45ee bundle, fast-import: detect write failure
I noticed some unchecked writes.  This fixes them.

* bundle.c (create_bundle): Die upon write failure.
* fast-import.c (keep_pack): Die upon write or close failure.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-10 01:08:11 -08:00
Kevin Ballard 35cda06164 Trim leading / off of paths in git-svn prop_walk
prop_walk adds a leading / to all subdirectory paths. Unfortunately
this causes a problem when the remote repo lives in a subdirectory itself,
as the leading / causes subsequent PROPFIND calls to be executed on
the wrong path. Trimming the / before calling the PROPFIND fixes this problem.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-09 14:56:49 -08:00
Johannes Schindelin 08359b0067 shortlog: mention the "-e" option in the usage
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-09 12:25:27 -08:00
Florian La Roche fe2128a826 Change git-gc documentation to reflect gc.packrefs implementation.
56752391a8 (Make "git gc" pack all
refs by default) changed the default of gc.packrefs to true, to
pack all refs by default in any repository.  IOW, the users need
to disable it explicitly if they want to by setting the config
variable, since 1.5.3.

However, we forgot to update the documentation.  This fixes it.

Signed-off-by: Florian La Roche <laroche@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-09 12:25:24 -08:00
Johannes Sixt 13e4760a16 recv_sideband: Do not use ANSI escape sequence on dumb terminals.
The "clear to end of line" sequence is used to nicely output the progress
indicator without leaving garbage on the terminal. However, this works
only on ANSI capable terminals. We use the same check as in color.c to
find out whether the terminal supports this feature and use a workaround
(a few spaces in a row) if it does not.

[jc: as an old fashoned git myself, and given the fact that the
possible prefix and suffix are small number of short constant strings,
I actually prefer a simpler-and-more-stupid approach.  This is with
Nico's clean-up.]

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-09 12:23:59 -08:00
Junio C Hamano f85fd3f0d1 Merge branch 'master' of git://git.kernel.org/pub/scm/gitk/gitk
* 'master' of git://git.kernel.org/pub/scm/gitk/gitk:
  [PATCH] gitk: use user-configured background in view definition dialog
  [PATCH] gitk: Update German translation
  [PATCH] gitk: Update and fix Makefile
  gitk: Restore some widget options whose defaults changed in Tk 8.5
  gitk: Recode de.po to UTF-8
  [PATCH] gitk i18n: Recode gitk from latin1 to utf8 so that the (c) copyright character is valid utf8.
  [PATCH] gitk i18n: More markup -- various options menus
  [PATCH] gitk i18n: Initial German translation
  [PATCH] gitk i18n: Markup several strings for translation
  [PATCH] gitk i18n: Import msgcat for message string translation; load translation catalogs
  [PATCH] gitk i18n: Add Makefile with rules for po file creation and installation
2008-01-08 22:41:15 -08:00