Code

git.git
17 years agocommit: fix pretty-printing of messages with "\nencoding "
Jeff King [Wed, 28 Mar 2007 21:52:09 +0000 (17:52 -0400)]
commit: fix pretty-printing of messages with "\nencoding "

The function replace_encoding_header is given the whole
commit buffer, including the commit message. When looking
for the encoding header, if none was found in the header, it
would locate any line in the commit message matching
"\nencoding " and remove it.

Instead, we now make sure to search only to the end of the
header.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agot4118: be nice to non-GNU sed
Johannes Schindelin [Fri, 23 Mar 2007 01:05:28 +0000 (21:05 -0400)]
t4118: be nice to non-GNU sed

Elias Pipping:
> I'm on a mac, hence /usr/bin/sed is not gnu sed, which makes
> t4118 fail.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Ack'd-by: Elias Pipping <pipping@macports.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-commit: "read-tree -m HEAD" is not the right way to read-tree quickly
Junio C Hamano [Wed, 28 Mar 2007 10:05:08 +0000 (03:05 -0700)]
git-commit: "read-tree -m HEAD" is not the right way to read-tree quickly

It still looks at the working tree and checks for locally
modified paths.  When are preparing a temporary index from HEAD,
we do not want any of that.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Sun, 25 Mar 2007 22:07:27 +0000 (15:07 -0700)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: introduce "branch" and "branch head" differently
  glossary: clean up cross-references
  glossary: stop generating automatically
  user-manual: Use def_ instead of ref_ for glossary references.
  user-manual.txt: fix a tiny typo.
  user-manual: run xsltproc without --nonet option

17 years agogitweb: Add some installation notes in gitweb/INSTALL
Jakub Narebski [Sat, 24 Mar 2007 19:59:53 +0000 (20:59 +0100)]
gitweb: Add some installation notes in gitweb/INSTALL

Add some installation and configuration notes for gitweb in
gitweb/INSTALL. Make use of filling gitweb configuration by
Makefile.

It does not cover (yet?) all the configuration variables and
options.

Some of contents duplicates information in gitweb/README file
(it is referred from gitweb/INSTALL).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Fix not marking signoff lines in "log" view
Jakub Narebski [Sat, 24 Mar 2007 19:59:13 +0000 (20:59 +0100)]
gitweb: Fix not marking signoff lines in "log" view

The CSS selector for signoff lines style was too strict: in the "log"
view the commit message is not encompassed in container "page_body"
div.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Don't escape attributes in CGI.pm HTML methods
Jakub Narebski [Wed, 7 Mar 2007 01:21:25 +0000 (02:21 +0100)]
gitweb: Don't escape attributes in CGI.pm HTML methods

There is no need to escape HTML tag's attributes in CGI.pm
HTML methods (like CGI::a()), because CGI.pm does attribute
escaping automatically.

  $cgi->a({ ... -attribute => atribute_value }, tag_contents)

is translated to

  <a ... attribute="attribute_value">tag_contents</a>

The rules for escaping attribute values (which are string contents) are
different. For example you have to take care about escaping embedded '"'
and "'" characters; CGI::a() does that for us automatically.

CGI::a() does not HTML escape tag_contents; we would need to write

  <a href="URL">some <b>bold</b> text</a>

for example. So we use esc_html (or esc_path) to escape tag_contents
as needed.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Change to use explicitly function call cgi->escapHTML()
Li Yang [Tue, 6 Mar 2007 03:58:56 +0000 (11:58 +0800)]
gitweb: Change to use explicitly function call cgi->escapHTML()

Change to use explicitly function call cgi->escapHTML().
This fix the problem on some systems that escapeHTML() is not
functioning, as default CGI is not setting 'escape' parameter.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogitweb: Fix "next" link in commit view
Jakub Narebski [Fri, 23 Mar 2007 20:04:31 +0000 (21:04 +0100)]
gitweb: Fix "next" link in commit view

Fix copy'n'paste error in commit c9d193df which caused that "next"
link for merge commits in "commit" view
  (merge: _commit_ _commit_ ...)
was to "commitdiff" view instead of being to "commit" view.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation/pack-format.txt: Clear up description of types.
Peter Eriksen [Wed, 21 Mar 2007 18:43:37 +0000 (19:43 +0100)]
Documentation/pack-format.txt: Clear up description of types.

Signed-off-by: Peter Eriksen <s022018@student.dtu.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agofix typo in git-am manpage
Michael S. Tsirkin [Wed, 21 Mar 2007 08:37:36 +0000 (10:37 +0200)]
fix typo in git-am manpage

Fix typo in git-am manpage

Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: introduce "branch" and "branch head" differently
J. Bruce Fields [Mon, 19 Mar 2007 03:02:14 +0000 (23:02 -0400)]
user-manual: introduce "branch" and "branch head" differently

I was using "branch" to mean "head", but that's perhaps a little
sloppy; so instead start by using the terms "branch head" and "head",
while still quickly falling back on "branch", since that's what
people actually say more frequently.

Also include glossary references on the first uses of "head" and "tag".

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoglossary: clean up cross-references
J. Bruce Fields [Sun, 18 Mar 2007 21:53:29 +0000 (17:53 -0400)]
glossary: clean up cross-references

Manual clean-up of cross-references, and also clean up a few definitions (e.g.
git-rebase).

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoglossary: stop generating automatically
J. Bruce Fields [Sun, 18 Mar 2007 21:02:37 +0000 (17:02 -0400)]
glossary: stop generating automatically

The sort_glossary.pl script sorts the glossary, checks for duplicates,
and automatically adds cross-references.

But it's not so hard to do all that by hand, and sometimes the automatic
cross-references are a little wrong; so let's run the script one last
time and check in its output.

Note: to make the output fit better into the user manual I also deleted
the acknowledgements at the end, which was maybe a little rude; feel
free to object and I can find a different solution.

Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: Use def_ instead of ref_ for glossary references.
J. Bruce Fields [Sun, 18 Mar 2007 00:40:13 +0000 (20:40 -0400)]
user-manual: Use def_ instead of ref_ for glossary references.

I'd like to start using references to the glossary in the user manual.
The "ref_" prefix for these references seems a little generic; so
replace with "def_".

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual.txt: fix a tiny typo.
Jim Meyering [Sun, 18 Mar 2007 17:39:56 +0000 (18:39 +0100)]
user-manual.txt: fix a tiny typo.

"file patch" was doubtless intended to be "file path",
but "directory name" is clearer.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: run xsltproc without --nonet option
J. Bruce Fields [Fri, 16 Mar 2007 15:45:29 +0000 (11:45 -0400)]
user-manual: run xsltproc without --nonet option

The --nonet option prevents xsltproc from going to the network to find
anything.  But it always tries to find them locally first, so for a
user with the necessary docbook stylesheets installed the build will
work just fine without xsltproc attempting to use the network; all
--nonet does is make it fail rather than falling back on that.  That
doesn't seem particularly helpful.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoGIT 1.5.0.5 v1.5.0.5
Junio C Hamano [Sun, 18 Mar 2007 21:40:35 +0000 (14:40 -0700)]
GIT 1.5.0.5

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-merge: finish when git-read-tree fails
Santi Béjar [Fri, 16 Mar 2007 10:46:09 +0000 (11:46 +0100)]
git-merge: finish when git-read-tree fails

The message formating (commit v1.5.0.3-28-gbe242d5) broke the && chain.

Noticed by Dmitry Torokhov.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoGIT 1.5.0.4 v1.5.0.4
Junio C Hamano [Wed, 14 Mar 2007 22:56:49 +0000 (15:56 -0700)]
GIT 1.5.0.4

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoClarify doc for git-config --unset-all.
Yann Dirson [Wed, 14 Mar 2007 21:08:41 +0000 (22:08 +0100)]
Clarify doc for git-config --unset-all.

Previous formulation could make it appear as removing all lines
matching a regexp (at least, I was looking for such a flag, and
confused this flag for what I was looking for).

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-checkout: fix "eval" used for merge labelling.
Junio C Hamano [Wed, 14 Mar 2007 16:48:13 +0000 (09:48 -0700)]
git-checkout: fix "eval" used for merge labelling.

The symbolic notation of the fork point can contain whitespaces (e.g.
"git checkout -m 'HEAD@{9 hours ago}'").  Quote strings properly
when using eval to prepare GITHEAD_$new

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: asciidoc formatting changes
Frank Lichtenheld [Tue, 13 Mar 2007 17:24:26 +0000 (18:24 +0100)]
cvsserver: asciidoc formatting changes

Format some lists really as lists. Improves both html and man
output.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://repo.or.cz/git/fastimport into maint
Junio C Hamano [Tue, 13 Mar 2007 06:08:27 +0000 (23:08 -0700)]
Merge branch 'maint' of git://repo.or.cz/git/fastimport into maint

* 'maint' of git://repo.or.cz/git/fastimport:
  fast-import: grow tree storage more aggressively

17 years agofast-import: grow tree storage more aggressively
Jeff King [Sun, 11 Mar 2007 02:39:17 +0000 (21:39 -0500)]
fast-import: grow tree storage more aggressively

When building up a tree for a commit, fast-import
dynamically allocates memory for the tree entries. When more
space is needed, the allocated memory is increased by a
constant amount. For very large trees, this means
re-allocating and memcpy()ing the memory O(n) times.

To compound this problem, releasing the previous tree
resource does not free the memory; it is kept in a pool
for future trees. This means that each of the O(n)
allocations will consume increasing amounts of memory,
giving O(n^2) memory consumption.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoDon't package the git-gui credits file anymore
Shawn O. Pearce [Mon, 12 Mar 2007 17:40:31 +0000 (13:40 -0400)]
Don't package the git-gui credits file anymore

Since git-gui 0.6.4 the credits file is no longer produced.
This file was removed from git-gui due to build issues that
a lot of users and Git developers have reported running into.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Mon, 12 Mar 2007 18:43:22 +0000 (11:43 -0700)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Allow 'git gui version' outside of a repository
  git-gui: Revert "git-gui: Display all authors of git-gui."
  git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."
  git-gui: Allow committing empty merges

17 years agogit-gui: Allow 'git gui version' outside of a repository gitgui-0.6.4
Shawn O. Pearce [Mon, 12 Mar 2007 17:24:10 +0000 (13:24 -0400)]
git-gui: Allow 'git gui version' outside of a repository

I got a little surprise one day when I tried to run 'git gui version'
outside of a Git repository to determine what version of git-gui was
installed on that system.  Turns out we were doing the repository
check long before we got around to command line argument handling.

We now look to see if the only argument we have been given is
'version' or '--version', and if so, print out the version and
exit immediately; long before we consider looking at the Git
version or working directory.  This way users can still get to
the git-gui version number even if Git's version cannot be read.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Revert "git-gui: Display all authors of git-gui."
Shawn O. Pearce [Mon, 12 Mar 2007 17:26:04 +0000 (13:26 -0400)]
git-gui: Revert "git-gui: Display all authors of git-gui."
This reverts commit 871f4c97ad7e021d1a0a98c80c5da77fcf70e4af.

Too many users have complained about the credits generator in
git-gui, so I'm backing the entire thing out.  This revert will
finish that series.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."
Shawn O. Pearce [Mon, 12 Mar 2007 17:25:58 +0000 (13:25 -0400)]
git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."
This reverts commit 92446aba47b0e0db28f7b858ea387efcca30ab44.

Too many users have complained about the credits generator in
git-gui, so I'm backing the entire thing out.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Allow committing empty merges
Shawn O. Pearce [Mon, 12 Mar 2007 17:03:47 +0000 (13:03 -0400)]
git-gui: Allow committing empty merges

Johannes Sixt noticed that git-gui would not let the user commit
a merge created by `git merge -s ours` as the ours strategy does
not alter the tree (that is HEAD^1^{tree} = HEAD^{tree} after the
merge).  The same issue arises from amending such a merge commit.

We now permit an empty commit (no changed files) if we are doing
a merge commit.  Core Git does this with its command line based
git-commit tool, so it makes sense for the GUI to do the same.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-send-email: Document configuration options
Avi Kivity [Sun, 11 Mar 2007 17:19:43 +0000 (19:19 +0200)]
git-send-email: Document configuration options

Wishing to implement an email aliases file, I found that they were already
implmented.  Document them for the next user.

Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-merge: warn when -m provided on a fast forward
J. Bruce Fields [Sun, 11 Mar 2007 16:28:56 +0000 (12:28 -0400)]
git-merge: warn when -m provided on a fast forward

Warn the user that the "-m" option is ignored in the case of a fast
forward.  That may save some confusion in the case where the user
doesn't know about fast forwards yet and may not realize that the
behavior here is intentional.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit.el: Retrieve commit log information from .dotest directory.
Alexandre Julliard [Sat, 10 Mar 2007 18:22:26 +0000 (19:22 +0100)]
git.el: Retrieve commit log information from .dotest directory.

If a git-am or git-rebase is in progress, fill the commit log buffer
from the commit information found in the various files in the .dotest
directory.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit.el: Avoid appending a signoff line that is already present.
Alexandre Julliard [Sat, 10 Mar 2007 18:21:25 +0000 (19:21 +0100)]
git.el: Avoid appending a signoff line that is already present.

Also avoid inserting an extra newline if other signoff lines are
present.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agosetup_git_directory_gently: fix off-by-one error
Matthias Lederhofer [Sun, 11 Mar 2007 01:35:00 +0000 (02:35 +0100)]
setup_git_directory_gently: fix off-by-one error

don't tell getcwd that the buffer has one spare byte for an extra /

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Sun, 11 Mar 2007 05:47:01 +0000 (21:47 -0800)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: install user manual stylesheet with other web documents
  user-manual: fix rendering of history diagrams
  user-manual: fix missing colon in git-show example
  user-manual: fix inconsistent use of pull and merge
  user-manual: fix inconsistent example
  glossary: fix overoptimistic automatic linking of defined terms

17 years agouser-manual: install user manual stylesheet with other web documents
J. Bruce Fields [Sun, 11 Mar 2007 03:58:54 +0000 (22:58 -0500)]
user-manual: install user manual stylesheet with other web documents

Install the stylesheet needed for the user manual.  This should solve
the problem of, e.g.,

http://www.kernel.org/pub/software/scm/git/docs/user-manual.html

lacking a lot of formatting.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: fix rendering of history diagrams
J. Bruce Fields [Sun, 11 Mar 2007 03:38:13 +0000 (22:38 -0500)]
user-manual: fix rendering of history diagrams

Asciidoc appears to interpret a backslash at the end of a line as
escaping the end-of-line character, which screws up the display of
history diagrams like

 o--o--o
\
 o--...

The obvious fix (replacing "\" by "\\") doesn't work.  The only
workaround I've found is to include all such diagrams in a LiteralBlock.
Asciidoc claims that should be equivalent to a literal paragraph, so I
don't understand why the difference--perhaps it's an asciidoc bug.

Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: fix missing colon in git-show example
J. Bruce Fields [Sun, 11 Mar 2007 03:00:12 +0000 (22:00 -0500)]
user-manual: fix missing colon in git-show example

There should be a colon in this git-show example.

Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: fix inconsistent use of pull and merge
J. Bruce Fields [Sun, 11 Mar 2007 02:52:39 +0000 (21:52 -0500)]
user-manual: fix inconsistent use of pull and merge

I used "git pull ." instead of "git merge" here without any explanation.
Stick instead to "git merge" for now (the equivalent pull syntax is
still covered in a later chapter).

Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agouser-manual: fix inconsistent example
J. Bruce Fields [Sun, 11 Mar 2007 02:45:29 +0000 (21:45 -0500)]
user-manual: fix inconsistent example

The configuration file fragment here is inconsistent with the text
above.  Thanks to Ramsay Jones for the correction.

Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoglossary: fix overoptimistic automatic linking of defined terms
J. Bruce Fields [Mon, 5 Mar 2007 00:13:09 +0000 (19:13 -0500)]
glossary: fix overoptimistic automatic linking of defined terms

The script sort_glossary.pl turns each use of "term" into a link to the
definition of "term".  To avoid mangling links like

gitlink:git-term[1]

it doesn't replace any occurence of "term" preceded by "link:git-".
This fails for gitlink:git-symbolic-ref[1] when substituting for "ref".

So instead just refuse to replace anything preceded by a "-".
That could result in missing some opportunities, but that's a less
annoying error.

Actually I find the automatic substitution a little distracting; some
day maybe we should just run it once and commit the result, so it can
be hand-tuned.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
17 years agoDocumentation: s/seperator/separator/
Jeff King [Fri, 9 Mar 2007 20:21:41 +0000 (15:21 -0500)]
Documentation: s/seperator/separator/

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdjust reflog filemode in shared repository
Matthias Kestenholz [Fri, 9 Mar 2007 22:38:57 +0000 (23:38 +0100)]
Adjust reflog filemode in shared repository

Without this, committing in a group-shared repository would not work
even though all developers are in the same group.

Signed-off-by: Matthias Kestenholz <matthias@spinlock.ch>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoCatch write_ref_sha1 failure in receive-pack
Shawn O. Pearce [Wed, 7 Mar 2007 17:04:24 +0000 (12:04 -0500)]
Catch write_ref_sha1 failure in receive-pack

This failure to catch the failure of write_ref_sha1 was noticed
by Bill Lear.  The ref will not update if the log file could not
be appended to (due to file permissions problems).  Such a failure
should be flagged as a failure to update the ref, so that the client
knows the push did not succeed.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agomake t8001 work on Mac OS X again
Johannes Schindelin [Wed, 7 Mar 2007 00:48:59 +0000 (19:48 -0500)]
make t8001 work on Mac OS X again

The test was recently broken to expect sed to leave the
incomplete line at the end without newline.

POSIX says that output of the pattern space is to be followed by
a newline, while GNU adds the newline back only when it was
stripped when input.  GNU behaviour is arguably more intuitive
and nicer, but we should not depend on it.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
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-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 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 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 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 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 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 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 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 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-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 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 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 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 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 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 agoFix git-show man page formatting in the EXAMPLES section
Theodore Tso [Tue, 27 Feb 2007 15:43:28 +0000 (10:43 -0500)]
Fix git-show man page formatting in the EXAMPLES section

Fix asciidoc markup so that the man page is properly formatted in the
EXAMPLES section.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-apply: do not fix whitespaces on context lines.
Junio C Hamano [Tue, 27 Feb 2007 09:31:42 +0000 (01:31 -0800)]
git-apply: do not fix whitespaces on context lines.

Internal function apply_line() is called to copy both context lines
and added lines to the output buffer, while possibly fixing the
whitespace breakages depending on --whitespace=strip settings.
However, it did its fix-up on both context lines and added lines.

This resulted in two symptoms:

 (1) The number of lines reported to have been fixed up included
     these context lines.

 (2) However, the lines actually shown were limited to the added
     lines that had whitespace breakages.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agodiff --cc: integer overflow given a 2GB-or-larger file
Jim Meyering [Mon, 26 Feb 2007 23:11:35 +0000 (00:11 +0100)]
diff --cc: integer overflow given a 2GB-or-larger file

Few of us use git to compare or even version-control 2GB files,
but when we do, we'll want it to work.

Reading a recent patch, I noticed two lines like this:

   int len = st.st_size;

Instead of "int", that should be "size_t".  Otherwise, in the
non-symlink case, with 64-bit size_t, if the file's size is 2GB,
the following xmalloc will fail:

   result = xmalloc(len + 1);

trying to allocate 2^64 - 2^31 + 1 bytes (assuming sign-extension
in the int-to-size_t promotion).  And even if it didn't fail, the
subsequent "result[len] = 0;" would be equivalent to an unpleasant
"result[-2147483648] = 0;"

The other nearby "int"-declared size variable, sz, should also be of
type size_t, for the same reason.  If sz ever wraps around and becomes
negative, xread will corrupt memory _before_ the "result" buffer.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agomailinfo: do not get confused with logical lines that are too long.
Linus Torvalds [Mon, 26 Feb 2007 19:10:59 +0000 (11:10 -0800)]
mailinfo: do not get confused with logical lines that are too long.

It basically considers all the continuation lines to be lines of their
own, and if the total line is bigger than what we can fit in it, we just
truncate the result rather than stop in the middle and then get confused
when we try to parse the "next" line (which is just the remainder of the
first line).

[jc: added test, and tightened boundary a bit per list discussion.]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-gui: Don't create empty (same tree as parent) commits. gitgui-0.6.2
Shawn O. Pearce [Mon, 26 Feb 2007 16:47:14 +0000 (11:47 -0500)]
git-gui: Don't create empty (same tree as parent) commits.

Mark Levedahl noticed that git-gui will let you create an empty
normal (non-merge) commit if the file state in the index is out
of whack.  The case Mark was looking at was with the new autoCRLF
feature in git enabled and is actually somewhat difficult to create.

I found a different way to create an empty commit:  turn on the
Trust File Modifications flag, touch a file, rescan, then move
the file into the "Changes To Be Committed" list without looking
at the file's diff.  This makes git-gui think there are files
staged for commit, yet the update-index call did nothing other
than refresh the stat information for the affected file.  In
this case git-gui allowed the user to make a commit that did
not actually change anything in the repository.

Creating empty commits is usually a pointless operation; rarely
does it record useful information.  More often than not an empty
commit is actually an indication that the user did not properly
update their index prior to commit.  We should help the user out
by detecting this possible mistake and guiding them through it,
rather than blindly recording it.

After we get the new tree name back from write-tree we compare
it to the parent commit's tree; if they are the same string and
this is a normal (non-merge, non-amend) commit then something
fishy is going on.  The user is making an empty commit, but they
most likely don't want to do that.  We now pop an informational
dialog and start a rescan, aborting the commit.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Add Reset to the Branch menu.
Shawn O. Pearce [Mon, 26 Feb 2007 16:22:10 +0000 (11:22 -0500)]
git-gui: Add Reset to the Branch menu.

cehteh on #git noticed that there was no way to perform a reset --hard
from within git-gui.  When I pointed out this was Merge->Abort Merge
cehteh said this is not very understandable, and that most users would
never guess to try that option unless they were actually in a merge.

So Branch->Reset is now also a way to cause a reset --hard from within
the UI.  Right now the confirmation dialog is the same as the one used
in Merge->Abort Merge.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>