Merge branch 'maint'

* maint:
  builtin-fmt-merge-msg: fix bugs in --file option
  index-pack: Loop over pread until data loading is complete.
  blameview: Fix the browse behavior in blameview
  Fix minor typos/grammar in user-manual.txt
  Correct ordering in git-cvsimport's option documentation
  git-show: Reject native ref
  Fix git-show man page formatting in the EXAMPLES section
This commit is contained in:
Junio C Hamano
2007-02-27 22:15:42 -08:00
7 changed files with 35 additions and 29 deletions

View File

@ -96,11 +96,6 @@ If you need to pass multiple options, separate them with a comma.
-s <subst>:: -s <subst>::
Substitute the character "/" in branch names with <subst> Substitute the character "/" in branch names with <subst>
-A <author-conv-file>::
CVS by default uses the Unix username when writing its
commit logs. Using this option and an author-conv-file
in this format
-a:: -a::
Import all commits, including recent ones. cvsimport by default Import all commits, including recent ones. cvsimport by default
skips commits that have a timestamp less than 10 minutes ago. skips commits that have a timestamp less than 10 minutes ago.
@ -112,6 +107,10 @@ If you need to pass multiple options, separate them with a comma.
Limit the number of commits imported. Workaround for cases where Limit the number of commits imported. Workaround for cases where
cvsimport leaks memory. cvsimport leaks memory.
-A <author-conv-file>::
CVS by default uses the Unix username when writing its
commit logs. Using this option and an author-conv-file
in this format
+ +
--------- ---------
exon=Andreas Ericsson <ae@op5.se> exon=Andreas Ericsson <ae@op5.se>

View File

@ -48,15 +48,15 @@ git show v1.0.0::
Shows the tag `v1.0.0`, along with the object the tags Shows the tag `v1.0.0`, along with the object the tags
points at. points at.
git show v1.0.0^{tree}:: git show v1.0.0^\{tree\}::
Shows the tree pointed to by the tag `v1.0.0`. Shows the tree pointed to by the tag `v1.0.0`.
git show next~10:Documentation/README git show next~10:Documentation/README::
Shows the contents of the file `Documentation/README` as Shows the contents of the file `Documentation/README` as
they were current in the 10th last commit of the branch they were current in the 10th last commit of the branch
`next`. `next`.
git show master:Makefile master:t/Makefile git show master:Makefile master:t/Makefile::
Concatenates the contents of said Makefiles in the head Concatenates the contents of said Makefiles in the head
of the branch `master`. of the branch `master`.

View File

@ -2,7 +2,7 @@ Git User's Manual
_________________ _________________
This manual is designed to be readable by someone with basic unix This manual is designed to be readable by someone with basic unix
commandline skills, but no previous knowledge of git. command-line skills, but no previous knowledge of git.
Chapter 1 gives a brief overview of git commands, without any Chapter 1 gives a brief overview of git commands, without any
explanation; you may prefer to skip to chapter 2 on a first reading. explanation; you may prefer to skip to chapter 2 on a first reading.
@ -1196,7 +1196,7 @@ will be HEAD, the tip of the current branch; the other will be the
tip of the other branch, which is stored temporarily in MERGE_HEAD. tip of the other branch, which is stored temporarily in MERGE_HEAD.
The diff above shows the differences between the working-tree version The diff above shows the differences between the working-tree version
of file.txt and two previous version: one version from HEAD, and one of file.txt and two previous versions: one version from HEAD, and one
from MERGE_HEAD. So instead of preceding each line by a single "+" from MERGE_HEAD. So instead of preceding each line by a single "+"
or "-", it now uses two columns: the first column is used for or "-", it now uses two columns: the first column is used for
differences between the first parent and the working directory copy, differences between the first parent and the working directory copy,
@ -1479,7 +1479,7 @@ Examining dangling objects
In some situations the reflog may not be able to save you. For In some situations the reflog may not be able to save you. For
example, suppose you delete a branch, then realize you need the history example, suppose you delete a branch, then realize you need the history
it pointed you. The reflog is also deleted; however, if you have not it contained. The reflog is also deleted; however, if you have not
yet pruned the repository, then you may still be able to find yet pruned the repository, then you may still be able to find
the lost commits; run git-fsck and watch for output that mentions the lost commits; run git-fsck and watch for output that mentions
"dangling commits": "dangling commits":
@ -1505,7 +1505,7 @@ history that is described by all your existing branches and tags. Thus
you get exactly the history reachable from that commit that is lost. you get exactly the history reachable from that commit that is lost.
(And notice that it might not be just one commit: we only report the (And notice that it might not be just one commit: we only report the
"tip of the line" as being dangling, but there might be a whole deep "tip of the line" as being dangling, but there might be a whole deep
and complex commit history that was gotten dropped.) and complex commit history that was dropped.)
If you decide you want the history back, you can always create a new If you decide you want the history back, you can always create a new
reference pointing to it, for example, a new branch: reference pointing to it, for example, a new branch:
@ -1561,7 +1561,7 @@ repository that you pulled from.
(But note that no such commit will be created in the case of a (But note that no such commit will be created in the case of a
<<fast-forwards,fast forward>>; instead, your branch will just be <<fast-forwards,fast forward>>; instead, your branch will just be
updated to point to the latest commit from the upstream branch). updated to point to the latest commit from the upstream branch.)
The git-pull command can also be given "." as the "remote" repository, The git-pull command can also be given "." as the "remote" repository,
in which case it just merges in a branch from the current repository; so in which case it just merges in a branch from the current repository; so
@ -1638,8 +1638,8 @@ updates with git pull>>".
If you and maintainer both have accounts on the same machine, then If you and maintainer both have accounts on the same machine, then
then you can just pull changes from each other's repositories then you can just pull changes from each other's repositories
directly; note that all of the command (gitlink:git-clone[1], directly; note that all of the commands (gitlink:git-clone[1],
git-fetch[1], git-pull[1], etc.) which accept a URL as an argument git-fetch[1], git-pull[1], etc.) that accept a URL as an argument
will also accept a local file patch; so, for example, you can will also accept a local file patch; so, for example, you can
use use
@ -1832,7 +1832,7 @@ that makes it easy for them to read your changes, verify that they are
correct, and understand why you made each change. correct, and understand why you made each change.
If you present all of your changes as a single patch (or commit), they If you present all of your changes as a single patch (or commit), they
may find it is too much to digest all at once. may find that it is too much to digest all at once.
If you present them with the entire history of your work, complete with If you present them with the entire history of your work, complete with
mistakes, corrections, and dead ends, they may be overwhelmed. mistakes, corrections, and dead ends, they may be overwhelmed.
@ -1858,11 +1858,8 @@ you are rewriting history.
Keeping a patch series up to date using git-rebase Keeping a patch series up to date using git-rebase
-------------------------------------------------- --------------------------------------------------
Suppose you have a series of commits in a branch "mywork", which Suppose that you create a branch "mywork" on a remote-tracking branch
originally branched off from "origin". "origin", and create some commits on top of it:
Suppose you create a branch "mywork" on a remote-tracking branch
"origin", and created some commits on top of it:
------------------------------------------------- -------------------------------------------------
$ git checkout -b mywork origin $ git checkout -b mywork origin
@ -1966,7 +1963,7 @@ Other tools
----------- -----------
There are numerous other tools, such as stgit, which exist for the There are numerous other tools, such as stgit, which exist for the
purpose of maintaining a patch series. These are out of the scope of purpose of maintaining a patch series. These are outside of the scope of
this manual. this manual.
Problems with rewriting history Problems with rewriting history
@ -2088,7 +2085,7 @@ descendant of the old head, you may force the update with:
$ git fetch git://example.com/proj.git +master:refs/remotes/example/master $ git fetch git://example.com/proj.git +master:refs/remotes/example/master
------------------------------------------------- -------------------------------------------------
Note the addition of the "+" sign. Be aware that commits which the Note the addition of the "+" sign. Be aware that commits that the
old version of example/master pointed at may be lost, as we saw in old version of example/master pointed at may be lost, as we saw in
the previous section. the previous section.
@ -2096,7 +2093,7 @@ Configuring remote branches
--------------------------- ---------------------------
We saw above that "origin" is just a shortcut to refer to the We saw above that "origin" is just a shortcut to refer to the
repository which you originally cloned from. This information is repository that you originally cloned from. This information is
stored in git configuration variables, which you can see using stored in git configuration variables, which you can see using
gitlink:git-config[1]: gitlink:git-config[1]:
@ -2407,7 +2404,7 @@ conflicts between different tree objects, allowing each pathname to be
associated with sufficient information about the trees involved that associated with sufficient information about the trees involved that
you can create a three-way merge between them.' you can create a three-way merge between them.'
Those are the three ONLY things that the directory cache does. It's a Those are the ONLY three things that the directory cache does. It's a
cache, and the normal operation is to re-generate it completely from a cache, and the normal operation is to re-generate it completely from a
known tree object, or update/compare it with a live tree that is being known tree object, or update/compare it with a live tree that is being
developed. If you blow the directory cache away entirely, you generally developed. If you blow the directory cache away entirely, you generally

View File

@ -259,13 +259,15 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
else if (!strcmp(argv[1], "--no-summary")) else if (!strcmp(argv[1], "--no-summary"))
merge_summary = 0; merge_summary = 0;
else if (!strcmp(argv[1], "-F") || !strcmp(argv[1], "--file")) { else if (!strcmp(argv[1], "-F") || !strcmp(argv[1], "--file")) {
if (argc < 2) if (argc < 3)
die ("Which file?"); die ("Which file?");
if (!strcmp(argv[2], "-")) if (!strcmp(argv[2], "-"))
in = stdin; in = stdin;
else { else {
fclose(in); fclose(in);
in = fopen(argv[2], "r"); in = fopen(argv[2], "r");
if (!in)
die("cannot open %s", argv[2]);
} }
argc--; argv++; argc--; argv++;
} else } else

View File

@ -41,7 +41,7 @@ $fileview->set_rules_hint(1);
$fileview->signal_connect (row_activated => sub { $fileview->signal_connect (row_activated => sub {
my ($sl, $path, $column) = @_; my ($sl, $path, $column) = @_;
my $row_ref = $sl->get_row_data_from_path ($path); my $row_ref = $sl->get_row_data_from_path ($path);
system("blameview @$row_ref[0] $fn &"); system("blameview @$row_ref[0]~1 $fn &");
}); });
my $commitwindow = Gtk2::ScrolledWindow->new(); my $commitwindow = Gtk2::ScrolledWindow->new();

View File

@ -277,13 +277,19 @@ static void *get_data_from_pack(struct object_entry *obj)
{ {
unsigned long from = obj[0].offset + obj[0].hdr_size; unsigned long from = obj[0].offset + obj[0].hdr_size;
unsigned long len = obj[1].offset - from; unsigned long len = obj[1].offset - from;
unsigned long rdy = 0;
unsigned char *src, *data; unsigned char *src, *data;
z_stream stream; z_stream stream;
int st; int st;
src = xmalloc(len); src = xmalloc(len);
if (pread(pack_fd, src, len, from) != len) data = src;
die("cannot pread pack file: %s", strerror(errno)); do {
ssize_t n = pread(pack_fd, data + rdy, len - rdy, from + rdy);
if (n <= 0)
die("cannot pread pack file: %s", strerror(errno));
rdy += n;
} while (rdy < len);
data = xmalloc(obj->size); data = xmalloc(obj->size);
memset(&stream, 0, sizeof(stream)); memset(&stream, 0, sizeof(stream));
stream.next_out = data; stream.next_out = data;

View File

@ -116,6 +116,8 @@ void mark_parents_uninteresting(struct commit *commit)
void add_pending_object(struct rev_info *revs, struct object *obj, const char *name) void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
{ {
if (revs->no_walk && (obj->flags & UNINTERESTING))
die("object ranges do not make sense when not walking revisions");
add_object_array(obj, name, &revs->pending); add_object_array(obj, name, &revs->pending);
if (revs->reflog_info && obj->type == OBJ_COMMIT) if (revs->reflog_info && obj->type == OBJ_COMMIT)
add_reflog_for_walk(revs->reflog_info, add_reflog_for_walk(revs->reflog_info,