mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
Merge branch 'maint'
* maint: More friendly message when locking the index fails. Document git blame --reverse. Documentation: Note file formats send-email accepts
This commit is contained in:
commit
8c5b85ce87
@ -41,6 +41,13 @@ of lines before or after the line given by <start>.
|
||||
-S <revs-file>::
|
||||
Use revs from revs-file instead of calling linkgit:git-rev-list[1].
|
||||
|
||||
--reverse::
|
||||
Walk history forward instead of backward. Instead of showing
|
||||
the revision in which a line appeared, this shows the last
|
||||
revision in which a line has existed. This requires a range of
|
||||
revision like START..END where the path to blame exists in
|
||||
START.
|
||||
|
||||
-p::
|
||||
--porcelain::
|
||||
Show in a format designed for machine consumption.
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m]
|
||||
[-S <revs-file>] [-M] [-C] [-C] [--since=<date>]
|
||||
[<rev> | --contents <file>] [--] <file>
|
||||
[<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -19,6 +19,19 @@ The header of the email is configurable by command line options. If not
|
||||
specified on the command line, the user will be prompted with a ReadLine
|
||||
enabled interface to provide the necessary information.
|
||||
|
||||
There are two formats accepted for patch files:
|
||||
|
||||
1. mbox format files
|
||||
+
|
||||
This is what linkgit:git-format-patch[1] generates. Most headers and MIME
|
||||
formatting are ignored.
|
||||
|
||||
2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl'
|
||||
script
|
||||
+
|
||||
This format expects the first line of the file to contain the "Cc:" value
|
||||
and the "Subject:" of the message as the second line.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
|
@ -742,8 +742,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
if (newfd < 0) {
|
||||
if (refresh_flags & REFRESH_QUIET)
|
||||
exit(128);
|
||||
die("unable to create '%s.lock': %s",
|
||||
get_index_file(), strerror(lock_error));
|
||||
unable_to_lock_index_die(get_index_file(), lock_error);
|
||||
}
|
||||
if (write_cache(newfd, active_cache, active_nr) ||
|
||||
commit_locked_index(lock_file))
|
||||
|
1
cache.h
1
cache.h
@ -484,6 +484,7 @@ struct lock_file {
|
||||
};
|
||||
#define LOCK_DIE_ON_ERROR 1
|
||||
#define LOCK_NODEREF 2
|
||||
extern NORETURN void unable_to_lock_index_die(const char *path, int err);
|
||||
extern int hold_lock_file_for_update(struct lock_file *, const char *path, int);
|
||||
extern int hold_lock_file_for_append(struct lock_file *, const char *path, int);
|
||||
extern int commit_lock_file(struct lock_file *);
|
||||
|
16
lockfile.c
16
lockfile.c
@ -155,11 +155,25 @@ static int lock_file(struct lock_file *lk, const char *path, int flags)
|
||||
return lk->fd;
|
||||
}
|
||||
|
||||
|
||||
NORETURN void unable_to_lock_index_die(const char *path, int err)
|
||||
{
|
||||
if (errno == EEXIST) {
|
||||
die("Unable to create '%s.lock': %s.\n\n"
|
||||
"If no other git process is currently running, this probably means a\n"
|
||||
"git process crashed in this repository earlier. Make sure no other git\n"
|
||||
"process is running and remove the file manually to continue.",
|
||||
path, strerror(err));
|
||||
} else {
|
||||
die("Unable to create '%s.lock': %s", path, strerror(err));
|
||||
}
|
||||
}
|
||||
|
||||
int hold_lock_file_for_update(struct lock_file *lk, const char *path, int flags)
|
||||
{
|
||||
int fd = lock_file(lk, path, flags);
|
||||
if (fd < 0 && (flags & LOCK_DIE_ON_ERROR))
|
||||
die("unable to create '%s.lock': %s", path, strerror(errno));
|
||||
unable_to_lock_index_die(path, errno);
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user