Merge branch 'maint'
* maint: Start preparing Release Notes for 1.5.0.3 Documentation: git-remote add [-t <branch>] [-m <branch>] [-f] name url Include config.mak in doc/Makefile git.el: Set the default commit coding system from the repository config. git-archimport: support empty summaries, put summary on a single line. http-push.c::lock_remote(): validate all remote refs. git-cvsexportcommit: don't cleanup .msg if not yet committed to cvs.
This commit is contained in:
commit
1db8b60b2a
@ -37,6 +37,7 @@ INSTALL?=install
|
||||
DOC_REF = origin/man
|
||||
|
||||
-include ../config.mak.autogen
|
||||
-include ../config.mak
|
||||
|
||||
#
|
||||
# Please note that there is a minor bug in asciidoc.
|
||||
|
55
Documentation/RelNotes-1.5.0.3.txt
Normal file
55
Documentation/RelNotes-1.5.0.3.txt
Normal file
@ -0,0 +1,55 @@
|
||||
GIT v1.5.0.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.2
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- 'git.el' honors the commit coding system from the configuration.
|
||||
|
||||
- 'blameview' in contrib/ correctly digs deeper when a line is
|
||||
clicked.
|
||||
|
||||
- 'http-push' correctly makes sure the remote side has leading
|
||||
path. Earlier it started in the middle of the path, and
|
||||
incorrectly.
|
||||
|
||||
- 'cvsexportcommit' does not lose yet-to-be-used message file.
|
||||
|
||||
- int-vs-size_t typefix when running combined diff on files
|
||||
over 2GB long.
|
||||
|
||||
- 'git apply --whitespace=strip' should not touch unmodified
|
||||
lines.
|
||||
|
||||
- 'git-mailinfo' choke when a logical header line was too long.
|
||||
|
||||
- 'git show A..B' did not error out. Negative ref ("not A" in
|
||||
this example) does not make sense for the purpose of the
|
||||
command, so now it errors out.
|
||||
|
||||
- 'git fmt-merge-msg --file' without file parameter did not
|
||||
correctly error out.
|
||||
|
||||
- 'git archimport' barfed upon encountering a commit without
|
||||
summary.
|
||||
|
||||
- 'git index-pack' did not protect itself from getting a short
|
||||
read out of pread(2).
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- options to 'git remote add' were described insufficiently.
|
||||
|
||||
|
||||
---
|
||||
exec >/var/tmp/1
|
||||
O=v1.5.0.2
|
||||
O=v1.5.0.2-16-gdb554bf
|
||||
echo O=`git describe maint`
|
||||
git shortlog --no-merges $O..maint
|
||||
|
||||
# Local Variables:
|
||||
# mode: text
|
||||
# End:
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git-remote'
|
||||
'git-remote' add <name> <url>
|
||||
'git-remote' add [-t <branch>] [-m <branch>] [-f] <name> <url>
|
||||
'git-remote' show <name>
|
||||
'git-remote' prune <name>
|
||||
'git-remote' update [group]
|
||||
@ -77,8 +77,8 @@ gitlink:git-config[1]).
|
||||
Examples
|
||||
--------
|
||||
|
||||
Add a new remote, fetch, and check out a branch from it:
|
||||
|
||||
* Add a new remote, fetch, and check out a branch from it
|
||||
+
|
||||
------------
|
||||
$ git remote
|
||||
origin
|
||||
@ -98,6 +98,17 @@ $ git checkout -b nfs linux-nfs/master
|
||||
...
|
||||
------------
|
||||
|
||||
* Imitate 'git clone' but track only selected branches
|
||||
+
|
||||
------------
|
||||
$ mkdir project.git
|
||||
$ cd project.git
|
||||
$ git init
|
||||
$ git remote add -f -t master -m master origin git://example.com/git.git/
|
||||
$ git merge origin
|
||||
------------
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
gitlink:git-fetch[1]
|
||||
|
@ -75,10 +75,11 @@ then to `add-log-mailing-address' and then to `user-mail-address'."
|
||||
:type '(choice (const :tag "Default" nil)
|
||||
(string :tag "Email")))
|
||||
|
||||
(defcustom git-commits-coding-system 'utf-8
|
||||
(defcustom git-commits-coding-system nil
|
||||
"Default coding system for the log message of git commits."
|
||||
:group 'git
|
||||
:type 'coding-system)
|
||||
:type '(choice (const :tag "From repository config" nil)
|
||||
(coding-system)))
|
||||
|
||||
(defcustom git-append-signed-off-by nil
|
||||
"Whether to append a Signed-off-by line to the commit message before editing."
|
||||
@ -236,6 +237,15 @@ and returns the process output as a string."
|
||||
(and (fboundp 'user-mail-address) (user-mail-address))
|
||||
(and (boundp 'user-mail-address) user-mail-address)))
|
||||
|
||||
(defun git-get-commits-coding-system ()
|
||||
"Return the coding system to use for commits."
|
||||
(let ((repo-config (git-config "i18n.commitencoding")))
|
||||
(or git-commits-coding-system
|
||||
(and repo-config
|
||||
(fboundp 'locale-charset-to-coding-system)
|
||||
(locale-charset-to-coding-system repo-config))
|
||||
'utf-8)))
|
||||
|
||||
(defun git-escape-file-name (name)
|
||||
"Escape a file name if necessary."
|
||||
(if (string-match "[\n\t\"\\]" name)
|
||||
@ -327,7 +337,7 @@ and returns the process output as a string."
|
||||
"Call git-commit-tree with buffer as input and return the resulting commit SHA1."
|
||||
(let ((author-name (git-get-committer-name))
|
||||
(author-email (git-get-committer-email))
|
||||
author-date log-start log-end args)
|
||||
author-date log-start log-end args coding-system-for-write)
|
||||
(when head
|
||||
(push "-p" args)
|
||||
(push head args))
|
||||
@ -350,12 +360,12 @@ and returns the process output as a string."
|
||||
(push "-p" args)
|
||||
(push (match-string 1) args))))
|
||||
(setq log-start (point-min)))
|
||||
(setq log-end (point-max)))
|
||||
(setq log-end (point-max))
|
||||
(setq coding-system-for-write buffer-file-coding-system))
|
||||
(git-get-string-sha1
|
||||
(with-output-to-string
|
||||
(with-current-buffer standard-output
|
||||
(let ((coding-system-for-write git-commits-coding-system)
|
||||
(env `(("GIT_AUTHOR_NAME" . ,author-name)
|
||||
(let ((env `(("GIT_AUTHOR_NAME" . ,author-name)
|
||||
("GIT_AUTHOR_EMAIL" . ,author-email)
|
||||
("GIT_COMMITTER_NAME" . ,(git-get-committer-name))
|
||||
("GIT_COMMITTER_EMAIL" . ,(git-get-committer-email)))))
|
||||
@ -888,6 +898,7 @@ and returns the process output as a string."
|
||||
(let ((buffer (get-buffer-create "*git-commit*"))
|
||||
(merge-heads (git-get-merge-heads))
|
||||
(dir default-directory)
|
||||
(coding-system (git-get-commits-coding-system))
|
||||
(sign-off git-append-signed-off-by))
|
||||
(with-current-buffer buffer
|
||||
(when (eq 0 (buffer-size))
|
||||
@ -912,6 +923,7 @@ and returns the process output as a string."
|
||||
(git-get-committer-name) (git-get-committer-email)))))))
|
||||
(log-edit #'git-do-commit nil #'git-log-edit-files buffer)
|
||||
(setq font-lock-keywords (font-lock-compile-keywords git-log-edit-font-lock-keywords))
|
||||
(setq buffer-file-coding-system coding-system)
|
||||
(re-search-forward (regexp-quote (concat git-log-msg-separator "\n")) nil t)))
|
||||
|
||||
(defun git-find-file ()
|
||||
|
@ -553,7 +553,7 @@ foreach my $ps (@psets) {
|
||||
|
||||
my $pid = open2(*READER, *WRITER,'git-commit-tree',$tree,@par)
|
||||
or die $!;
|
||||
print WRITER $ps->{summary},"\n";
|
||||
print WRITER $ps->{summary},"\n\n";
|
||||
print WRITER $ps->{message},"\n";
|
||||
|
||||
# make it easy to backtrack and figure out which Arch revision this was:
|
||||
@ -755,7 +755,8 @@ sub parselog {
|
||||
$ps->{tag} = $1;
|
||||
$key = undef;
|
||||
} elsif (/^Summary:\s*(.*)$/ ) {
|
||||
# summary can be multiline as long as it has a leading space
|
||||
# summary can be multiline as long as it has a leading space.
|
||||
# we squeeze it onto a single line, though.
|
||||
$ps->{summary} = [ $1 ];
|
||||
$key = 'summary';
|
||||
} elsif (/^Creator: (.*)\s*<([^\>]+)>/) {
|
||||
@ -787,8 +788,18 @@ sub parselog {
|
||||
}
|
||||
}
|
||||
|
||||
# post-processing:
|
||||
$ps->{summary} = join("\n",@{$ps->{summary}})."\n";
|
||||
# drop leading empty lines from the log message
|
||||
while (@$log && $log->[0] eq '') {
|
||||
shift @$log;
|
||||
}
|
||||
if (exists $ps->{summary} && @{$ps->{summary}}) {
|
||||
$ps->{summary} = join(' ', @{$ps->{summary}});
|
||||
}
|
||||
elsif (@$log == 0) {
|
||||
$ps->{summary} = 'empty commit message';
|
||||
} else {
|
||||
$ps->{summary} = $log->[0] . '...';
|
||||
}
|
||||
$ps->{message} = join("\n",@$log);
|
||||
|
||||
# skip Arch control files, unescape pika-escaped files
|
||||
|
@ -248,13 +248,14 @@ if ($opt_c) {
|
||||
die "Exiting: The commit did not succeed";
|
||||
}
|
||||
print "Committed successfully to CVS\n";
|
||||
# clean up
|
||||
unlink(".msg");
|
||||
} else {
|
||||
print "Ready for you to commit, just run:\n\n $cmd\n";
|
||||
}
|
||||
|
||||
# clean up
|
||||
unlink(".cvsexportcommit.diff");
|
||||
unlink(".msg");
|
||||
|
||||
sub usage {
|
||||
print STDERR <<END;
|
||||
|
@ -1295,7 +1295,7 @@ static struct remote_lock *lock_remote(const char *path, long timeout)
|
||||
sprintf(url, "%s%s", remote->url, path);
|
||||
|
||||
/* Make sure leading directories exist for the remote ref */
|
||||
ep = strchr(url + strlen(remote->url) + 11, '/');
|
||||
ep = strchr(url + strlen(remote->url) + 1, '/');
|
||||
while (ep) {
|
||||
*ep = 0;
|
||||
slot = get_active_slot();
|
||||
|
Loading…
Reference in New Issue
Block a user