Sync with 1.8.5
This commit is contained in:
commit
15a42a10ec
10
Documentation/RelNotes/1.8.4.4.txt
Normal file
10
Documentation/RelNotes/1.8.4.4.txt
Normal file
@ -0,0 +1,10 @@
|
||||
Git v1.8.4.4 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v1.8.4.3
|
||||
--------------------
|
||||
|
||||
* The fix in v1.8.4.3 to the pack transfer protocol to propagate
|
||||
the target of symbolic refs broke "git clone/git fetch" from a
|
||||
repository with too many symbolic refs. As a hotfix/workaround,
|
||||
we transfer only the information on HEAD.
|
@ -8,7 +8,7 @@ When "git push [$there]" does not say what to push, we have used the
|
||||
traditional "matching" semantics so far (all your branches were sent
|
||||
to the remote as long as there already are branches of the same name
|
||||
over there). In Git 2.0, the default will change to the "simple"
|
||||
semantics that pushes:
|
||||
semantics, which pushes:
|
||||
|
||||
- only the current branch to the branch with the same name, and only
|
||||
when the current branch is set to integrate with that remote
|
||||
@ -53,9 +53,12 @@ Updates since v1.8.4
|
||||
|
||||
Foreign interfaces, subsystems and ports.
|
||||
|
||||
* "git-svn" used with SVN 1.8.0 when talking over https:// connection
|
||||
* "git-svn" has been taught to use the serf library, which is the
|
||||
only option SVN 1.8.0 offers us when talking the HTTP protocol.
|
||||
|
||||
* "git-svn" talking over an https:// connection using the serf library
|
||||
dumped core due to a bug in the serf library that SVN uses. Work
|
||||
it around on our side, even though the SVN side is being fixed.
|
||||
around it on our side, even though the SVN side is being fixed.
|
||||
|
||||
* On MacOS X, we detected if the filesystem needs the "pre-composed
|
||||
unicode strings" workaround, but did not automatically enable it.
|
||||
@ -65,10 +68,7 @@ Foreign interfaces, subsystems and ports.
|
||||
repository relative to the home directory, e.g. "clone hg::~/there".
|
||||
|
||||
* imap-send ported to OS X uses Apple's security framework instead of
|
||||
OpenSSL one.
|
||||
|
||||
* Subversion 1.8.0 that was recently released breaks older subversion
|
||||
clients coming over http/https in various ways.
|
||||
OpenSSL's.
|
||||
|
||||
* "git fast-import" treats an empty path given to "ls" as the root of
|
||||
the tree.
|
||||
@ -79,22 +79,22 @@ UI, Workflows & Features
|
||||
* xdg-open can be used as a browser backend for "git web-browse"
|
||||
(hence to show "git help -w" output), when available.
|
||||
|
||||
* "git grep" and "git show" pays attention to "--textconv" option
|
||||
* "git grep" and "git show" pay attention to the "--textconv" option
|
||||
when these commands are told to operate on blob objects (e.g. "git
|
||||
grep -e pattern HEAD:Makefile").
|
||||
grep -e pattern --textconv HEAD:Makefile").
|
||||
|
||||
* "git replace" helper no longer allows an object to be replaced with
|
||||
another object of a different type to avoid confusion (you can
|
||||
still manually craft such replacement using "git update-ref", as an
|
||||
still manually craft such a replacement using "git update-ref", as an
|
||||
escape hatch).
|
||||
|
||||
* "git status" no longer prints dirty status information for
|
||||
* "git status" no longer prints the dirty status information of
|
||||
submodules for which submodule.$name.ignore is set to "all".
|
||||
|
||||
* "git rebase -i" honours core.abbrev when preparing the insn sheet
|
||||
for editing.
|
||||
|
||||
* "git status" during a cherry-pick shows what original commit is
|
||||
* "git status" during a cherry-pick shows which original commit is
|
||||
being picked.
|
||||
|
||||
* Instead of typing four capital letters "HEAD", you can say "@" now,
|
||||
@ -102,21 +102,21 @@ UI, Workflows & Features
|
||||
|
||||
* "git check-ignore" follows the same rule as "git add" and "git
|
||||
status" in that the ignore/exclude mechanism does not take effect
|
||||
on paths that are already tracked. With "--no-index" option, it
|
||||
on paths that are already tracked. With the "--no-index" option, it
|
||||
can be used to diagnose which paths that should have been ignored
|
||||
have been mistakenly added to the index.
|
||||
|
||||
* Some irrelevant "advice" messages that are shared with "git status"
|
||||
output have been removed from the commit log template.
|
||||
|
||||
* "update-refs" learnt a "--stdin" option to read multiple update
|
||||
* "update-refs" learned a "--stdin" option to read multiple update
|
||||
requests and perform them in an all-or-none fashion.
|
||||
|
||||
* Just like "make -C <directory>", "git -C <directory> ..." tells Git
|
||||
to go there before doing anything else.
|
||||
|
||||
* Just like "git checkout -" knows to check out and "git merge -"
|
||||
knows to merge the branch you were previously on, "git cherry-pick"
|
||||
* Just like "git checkout -" knows to check out, and "git merge -"
|
||||
knows to merge, the branch you were previously on, "git cherry-pick"
|
||||
now understands "git cherry-pick -" to pick from the previous
|
||||
branch.
|
||||
|
||||
@ -126,56 +126,58 @@ UI, Workflows & Features
|
||||
"git status --porcelain" instead, as its format is stable and easier
|
||||
to parse.
|
||||
|
||||
* Make "foo^{tag}" to peel a tag to itself, i.e. no-op., and fail if
|
||||
"foo" is not a tag. "git rev-parse --verify v1.0^{tag}" would be
|
||||
a more convenient way to say "test $(git cat-file -t v1.0) = tag".
|
||||
* The ref syntax "foo^{tag}" (with the literal string "{tag}") peels a
|
||||
tag ref to itself, i.e. it's a no-op., and fails if
|
||||
"foo" is not a tag. "git rev-parse --verify v1.0^{tag}" is
|
||||
a more convenient way than "test $(git cat-file -t v1.0) = tag" to
|
||||
check if v1.0 is a tag.
|
||||
|
||||
* "git branch -v -v" (and "git status") did not distinguish among a
|
||||
branch that does not build on any other branch, a branch that is in
|
||||
sync with the branch it builds on, and a branch that is configured
|
||||
to build on some other branch that no longer exists.
|
||||
branch that is not based on any other branch, a branch that is in
|
||||
sync with its upstream branch, and a branch that is configured with an
|
||||
upstream branch that no longer exists.
|
||||
|
||||
* Earlier we started rejecting an attempt to add 0{40} object name to
|
||||
* Earlier we started rejecting any attempt to add the 0{40} object name to
|
||||
the index and to tree objects, but it sometimes is necessary to
|
||||
allow so to be able to use tools like filter-branch to correct such
|
||||
broken tree objects. "filter-branch" can again be used to to do
|
||||
so.
|
||||
allow this to be able to use tools like filter-branch to correct such
|
||||
broken tree objects. "filter-branch" can again be used to do this.
|
||||
|
||||
* "git config" did not provide a way to set or access numbers larger
|
||||
than a native "int" on the platform; it now provides 64-bit signed
|
||||
integers on all platforms.
|
||||
|
||||
* "git pull --rebase" always chose to do the bog-standard flattening
|
||||
rebase. You can tell it to run "rebase --preserve-merges" by
|
||||
rebase. You can tell it to run "rebase --preserve-merges" with
|
||||
"git pull --rebase=preserve" or by
|
||||
setting "pull.rebase" configuration to "preserve".
|
||||
|
||||
* "git push --no-thin" actually disables the "thin pack transfer"
|
||||
optimization.
|
||||
|
||||
* Magic pathspecs like ":(icase)makefile" that matches both Makefile
|
||||
and makefile and ":(glob)foo/**/bar" that matches "bar" in "foo"
|
||||
and any subdirectory of "foo" can be used in more places.
|
||||
* Magic pathspecs like ":(icase)makefile" (matches both Makefile
|
||||
and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo"
|
||||
and any subdirectory of "foo") can be used in more places.
|
||||
|
||||
* The "http.*" variables can now be specified per URL that the
|
||||
configuration applies. For example,
|
||||
* The "http.*" variables can now be specified for individual URLs.
|
||||
For example,
|
||||
|
||||
[http]
|
||||
sslVerify = true
|
||||
[http "https://weak.example.com/"]
|
||||
sslVerify = false
|
||||
|
||||
would flip http.sslVerify off only when talking to that specified
|
||||
would flip http.sslVerify off only when talking to that specific
|
||||
site.
|
||||
|
||||
* "git mv A B" when moving a submodule A has been taught to
|
||||
relocate its working tree and to adjust the paths in the
|
||||
* "git mv A B" when moving a submodule has been taught to
|
||||
relocate the submodule's working tree and to adjust the paths in the
|
||||
.gitmodules file.
|
||||
|
||||
* "git blame" can now take more than one -L option to discover the
|
||||
origin of multiple blocks of the lines.
|
||||
origin of multiple blocks of lines.
|
||||
|
||||
* The http transport clients can optionally ask to save cookies
|
||||
with http.savecookies configuration variable.
|
||||
with the http.savecookies configuration variable.
|
||||
|
||||
* "git push" learned a more fine grained control over a blunt
|
||||
"--force" when requesting a non-fast-forward update with the
|
||||
@ -197,7 +199,7 @@ UI, Workflows & Features
|
||||
|
||||
* "git whatchanged" may still be used by old timers, but mention of
|
||||
it in documents meant for new users will only waste readers' time
|
||||
wonderig what the difference is between it and "git log". Make it
|
||||
wondering what the difference is between it and "git log". Make it
|
||||
less prominent in the general part of the documentation and explain
|
||||
that it is merely a "git log" with different default behaviour in
|
||||
its own document.
|
||||
@ -219,23 +221,23 @@ Performance, Internal Implementation, etc.
|
||||
should apply the same "no subprocess or pipe" optimization as we
|
||||
apply to user-supplied GIT_PAGER=cat.
|
||||
|
||||
* Many commands use --dashed-option as a operation mode selector
|
||||
(e.g. "git tag --delete") that the user can use at most one
|
||||
(e.g. "git tag --delete --verify" is a nonsense) and you cannot
|
||||
negate (e.g. "git tag --no-delete" is a nonsense). parse-options
|
||||
* Many commands use a --dashed-option as an operation mode selector
|
||||
(e.g. "git tag --delete") that excludes other operation modes
|
||||
(e.g. "git tag --delete --verify" is nonsense) and that cannot be
|
||||
negated (e.g. "git tag --no-delete" is nonsense). The parse-options
|
||||
API learned a new OPT_CMDMODE macro to make it easier to implement
|
||||
such a set of options.
|
||||
|
||||
* OPT_BOOLEAN() in parse-options API was misdesigned to be "counting
|
||||
* OPT_BOOLEAN() in the parse-options API was misdesigned to be "counting
|
||||
up" but many subcommands expect it to behave as "on/off". Update
|
||||
them to use OPT_BOOL() which is a proper boolean.
|
||||
|
||||
* "git gc" exits early without doing a double-work when it detects
|
||||
* "git gc" exits early without doing any work when it detects
|
||||
that another instance of itself is already running.
|
||||
|
||||
* Under memory pressure and/or file descriptor pressure, we used to
|
||||
close pack windows that are not used and also closed filehandle to
|
||||
an open but unused packfiles. These are now controlled separately
|
||||
close pack windows that are not used and also closed filehandles to
|
||||
open but unused packfiles. These are now controlled separately
|
||||
to better cope with the load.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
@ -245,32 +247,32 @@ Fixes since v1.8.4
|
||||
------------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v1.8.4 in the maintenance
|
||||
track are contained in this release (see release notes to them for
|
||||
track are contained in this release (see the maintenance releases' notes for
|
||||
details).
|
||||
|
||||
* An ancient How-To on serving Git repositories on an HTTP server
|
||||
lacked a warning that it has been mostly superseded with more
|
||||
lacked a warning that it has been mostly superseded with a more
|
||||
modern way.
|
||||
(merge 6d52bc3 sc/doc-howto-dumb-http later to maint).
|
||||
|
||||
* The interaction between use of Perl in our test suite and NO_PERL
|
||||
* The interaction between the use of Perl in our test suite and NO_PERL
|
||||
has been clarified a bit.
|
||||
(merge f8fc0ee jn/test-prereq-perl-doc later to maint).
|
||||
|
||||
* The synopsis section of "git unpack-objects" documentation has been
|
||||
* The synopsis section of the "git unpack-objects" documentation has been
|
||||
clarified a bit.
|
||||
(merge 61e2e22 vd/doc-unpack-objects later to maint).
|
||||
|
||||
* We did not generate HTML version of documentation to "git subtree"
|
||||
* We did not generate the HTML version of the documentation to "git subtree"
|
||||
in contrib/.
|
||||
(merge 95c62fb jk/subtree-install-fix later to maint).
|
||||
|
||||
* A fast-import stream expresses a pathname with funny characters by
|
||||
quoting them in C style; remote-hg remote helper forgot to unquote
|
||||
quoting them in C style; the remote-hg remote helper forgot to unquote
|
||||
such a path.
|
||||
(merge 1136265 ap/remote-hg-unquote-cquote later to maint).
|
||||
|
||||
* "git reset -p HEAD" has a codepath to special case it to behave
|
||||
* "git reset -p HEAD" has a codepath to special-case it to behave
|
||||
differently from resetting to contents of other commits, but a
|
||||
recent change broke it.
|
||||
|
||||
@ -289,38 +291,38 @@ details).
|
||||
"HEAD" points at, and the receiving end needed to guess. A new
|
||||
capability has been defined in the pack protocol to convey this
|
||||
information so that cloning from a repository with more than one
|
||||
branches pointing at the same commit where the HEAD is at now
|
||||
branch pointing at the same commit where the HEAD is at now
|
||||
reliably sets the initial branch in the resulting repository.
|
||||
(merge 360a326 jc/upload-pack-send-symref later to maint).
|
||||
|
||||
* We did not handle cases where http transport gets redirected during
|
||||
* We did not handle cases where the http transport gets redirected during
|
||||
the authorization request (e.g. from http:// to https://).
|
||||
(merge 70900ed jk/http-auth-redirects later to maint).
|
||||
|
||||
* Bash prompting code to deal with an SVN remote as an upstream
|
||||
were coded in a way not supported by older Bash versions (3.x).
|
||||
was coded in a way unsupported by older Bash versions (3.x).
|
||||
(merge 52ec889 sg/prompt-svn-remote-fix later to maint).
|
||||
|
||||
* The fall-back parsing of commit objects with broken author or
|
||||
committer lines were less robust than ideal in picking up the
|
||||
committer lines was less robust than ideal in picking up the
|
||||
timestamps.
|
||||
(merge 03818a4 jk/split-broken-ident later to maint).
|
||||
|
||||
* "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
|
||||
* "git rev-list --objects ^v1.0^ v1.0" gave the v1.0 tag itself in the
|
||||
output, but "git rev-list --objects v1.0^..v1.0" did not.
|
||||
(merge 895c5ba jc/revision-range-unpeel later to maint).
|
||||
|
||||
* "git clone" gave some progress messages to the standard output, not
|
||||
to the standard error, and did not allow suppressing them with the
|
||||
* "git clone" wrote some progress messages to standard output, not
|
||||
to standard error, and did not suppress them with the
|
||||
--no-progress option.
|
||||
(merge 643f918 jk/clone-progress-to-stderr later to maint).
|
||||
|
||||
* "format-patch --from=<whom>" forgot to omit unnecessary in-body
|
||||
* "format-patch --from=<whom>" forgot to omit an unnecessary in-body
|
||||
from line, i.e. when <whom> is the same as the real author.
|
||||
(merge 662cc30 jk/format-patch-from later to maint).
|
||||
|
||||
* "git shortlog" used to choke and die when there is a malformed
|
||||
commit (e.g. missing authors); it now simply ignore such a commit
|
||||
commit (e.g. missing authors); it now simply ignores such a commit
|
||||
and keeps going.
|
||||
(merge cd4f09e jk/shortlog-tolerate-broken-commit later to maint).
|
||||
|
||||
@ -334,16 +336,16 @@ details).
|
||||
small empty messages to keep the connection alive.
|
||||
(merge 115dedd jk/upload-pack-keepalive later to maint).
|
||||
|
||||
* "git rebase" had a portability regression in v1.8.4 to trigger a
|
||||
* "git rebase" had a portability regression in v1.8.4 that triggered a
|
||||
bug in some BSD shell implementations.
|
||||
(merge 99855dd mm/rebase-continue-freebsd-WB later to maint).
|
||||
|
||||
* "git branch --track" had a minor regression in v1.8.3.2 and later
|
||||
that made it impossible to base your local work on anything but a
|
||||
local branch of the upstream repository you are tracking from.
|
||||
local branch of the upstream repository you are tracking.
|
||||
(merge b0f49ff jh/checkout-auto-tracking later to maint).
|
||||
|
||||
* When the webserver responds with "405 Method Not Allowed", "git
|
||||
* When the web server responds with "405 Method Not Allowed", "git
|
||||
http-backend" should tell the client what methods are allowed with
|
||||
the "Allow" header.
|
||||
(merge 9247be0 bc/http-backend-allow-405 later to maint).
|
||||
@ -357,22 +359,22 @@ details).
|
||||
executable files.
|
||||
(merge 1b48d56 jc/cvsserver-perm-bit-fix later to maint).
|
||||
|
||||
* When send-email comes up with an error message to die with upon
|
||||
* When send-email obtains an error message to die with upon
|
||||
failure to start an SSL session, it tried to read the error string
|
||||
from a wrong place.
|
||||
(merge 6cb0c88 bc/send-email-ssl-die-message-fix later to maint).
|
||||
|
||||
* The implementation of "add -i" has a crippling code to work around
|
||||
* The implementation of "add -i" has some crippling code to work around an
|
||||
ActiveState Perl limitation but it by mistake also triggered on Git
|
||||
for Windows where MSYS perl is used.
|
||||
(merge df17e77 js/add-i-mingw later to maint).
|
||||
|
||||
* We made sure that we notice the user-supplied GIT_DIR is actually a
|
||||
* We made sure that we notice when the user-supplied GIT_DIR is actually a
|
||||
gitfile, but did not do the same when the default ".git" is a
|
||||
gitfile.
|
||||
(merge 487a2b7 nd/git-dir-pointing-at-gitfile later to maint).
|
||||
|
||||
* When an object is not found after checking the packfiles and then
|
||||
* When an object is not found after checking the packfiles and the
|
||||
loose object directory, read_sha1_file() re-checks the packfiles to
|
||||
prevent racing with a concurrent repacker; teach the same logic to
|
||||
has_sha1_file().
|
||||
@ -390,22 +392,22 @@ details).
|
||||
made it unnecessarily inefficient.
|
||||
(merge 680be04 jc/ls-files-killed-optim later to maint).
|
||||
|
||||
* The commit object names in the insn sheet that was prepared at the
|
||||
beginning of "rebase -i" session can become ambiguous as the
|
||||
* The shortened commit object names in the insn sheet that is prepared at the
|
||||
beginning of a "rebase -i" session can become ambiguous as the
|
||||
rebasing progresses and the repository gains more commits. Make
|
||||
sure the internal record is kept with full 40-hex object names.
|
||||
(merge 75c6976 es/rebase-i-no-abbrev later to maint).
|
||||
|
||||
* "git rebase --preserve-merges" internally used the merge machinery
|
||||
and as a side effect, left merge summary message in the log, but
|
||||
when rebasing, there should not be a need for merge summary.
|
||||
and as a side effect left the merge summary message in the log, but
|
||||
when rebasing there is no need for the merge summary.
|
||||
(merge a9f739c rt/rebase-p-no-merge-summary later to maint).
|
||||
|
||||
* A call to xread() was used without a loop around to cope with short
|
||||
read in the codepath to stream new contents to a pack.
|
||||
* A call to xread() was used without a loop around it to cope with short
|
||||
reads in the codepath to stream new contents to a pack.
|
||||
(merge e92527c js/xread-in-full later to maint).
|
||||
|
||||
* "git rebase -i" forgot that the comment character can be
|
||||
* "git rebase -i" forgot that the comment character is
|
||||
configurable while reading its insn sheet.
|
||||
(merge 7bca7af es/rebase-i-respect-core-commentchar later to maint).
|
||||
|
||||
@ -416,8 +418,8 @@ details).
|
||||
* We used to send a large request to read(2)/write(2) as a single
|
||||
system call, which was bad from the latency point of view when
|
||||
the operation needs to be killed, and also triggered an error on
|
||||
broken 64-bit systems that refuse to take more than 2GB read or
|
||||
write in one go.
|
||||
broken 64-bit systems that refuse to read or write more than 2GB
|
||||
in one go.
|
||||
(merge a487916 sp/clip-read-write-to-8mb later to maint).
|
||||
|
||||
* "git fetch" that auto-followed tags incorrectly reused the
|
||||
@ -431,17 +433,17 @@ details).
|
||||
had a similar problem.
|
||||
(merge 838f9a1 tr/log-full-diff-keep-true-parents later to maint).
|
||||
|
||||
* Setting submodule.*.path configuration variable to true (without
|
||||
* Setting a submodule.*.path configuration variable to true (without
|
||||
giving "= value") caused Git to segfault.
|
||||
(merge 4b05440 jl/some-submodule-config-are-not-boolean later to maint).
|
||||
|
||||
* "git rebase -i" (there could be others, as the root cause is pretty
|
||||
generic) fed a random, data dependeant string to 'echo' and
|
||||
expects it to come out literally, corrupting its error message.
|
||||
generic) fed a random, data dependent string to 'echo' and
|
||||
expected it to come out literally, corrupting its error message.
|
||||
(merge 89b0230 mm/no-shell-escape-in-die-message later to maint).
|
||||
|
||||
* Some people still use rather old versions of bash, which cannot
|
||||
grok some constructs like 'printf -v varname' the prompt and
|
||||
grok some constructs like 'printf -v varname' which the prompt and
|
||||
completion code started to use recently.
|
||||
(merge a44aa69 bc/completion-for-bash-3.0 later to maint).
|
||||
|
||||
|
@ -8,9 +8,9 @@ endif::git-commit[]
|
||||
support the following date formats:
|
||||
|
||||
Git internal format::
|
||||
It is `<unix timestamp> <timezone offset>`, where `<unix
|
||||
It is `<unix timestamp> <time zone offset>`, where `<unix
|
||||
timestamp>` is the number of seconds since the UNIX epoch.
|
||||
`<timezone offset>` is a positive or negative offset from UTC.
|
||||
`<time zone offset>` is a positive or negative offset from UTC.
|
||||
For example CET (which is 2 hours ahead UTC) is `+0200`.
|
||||
|
||||
RFC 2822::
|
||||
|
@ -103,7 +103,7 @@ This header line is followed by the following information
|
||||
at least once for each commit:
|
||||
|
||||
- the author name ("author"), email ("author-mail"), time
|
||||
("author-time"), and timezone ("author-tz"); similarly
|
||||
("author-time"), and time zone ("author-tz"); similarly
|
||||
for committer.
|
||||
- the filename in the commit that the line is attributed to.
|
||||
- the first line of the commit log message ("summary").
|
||||
|
@ -144,7 +144,7 @@ This option can be used several times to provide several detection regexes.
|
||||
CVS by default uses the Unix username when writing its
|
||||
commit logs. Using this option and an author-conv-file
|
||||
maps the name recorded in CVS to author name, e-mail and
|
||||
optional timezone:
|
||||
optional time zone:
|
||||
+
|
||||
---------
|
||||
exon=Andreas Ericsson <ae@op5.se>
|
||||
@ -154,7 +154,7 @@ This option can be used several times to provide several detection regexes.
|
||||
+
|
||||
'git cvsimport' will make it appear as those authors had
|
||||
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
|
||||
all along. If a timezone is specified, GIT_AUTHOR_DATE will
|
||||
all along. If a time zone is specified, GIT_AUTHOR_DATE will
|
||||
have the corresponding offset applied.
|
||||
+
|
||||
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
|
||||
|
@ -251,7 +251,7 @@ advisement to help formatting routines display the timestamp.
|
||||
If the local offset is not available in the source material, use
|
||||
``+0000'', or the most common local offset. For example many
|
||||
organizations have a CVS repository which has only ever been accessed
|
||||
by users who are located in the same location and timezone. In this
|
||||
by users who are located in the same location and time zone. In this
|
||||
case a reasonable offset from UTC could be assumed.
|
||||
+
|
||||
Unlike the `rfc2822` format, this format is very strict. Any
|
||||
@ -271,7 +271,7 @@ the malformed string. There are also some types of malformed
|
||||
strings which Git will parse wrong, and yet consider valid.
|
||||
Seriously malformed strings will be rejected.
|
||||
+
|
||||
Unlike the `raw` format above, the timezone/UTC offset information
|
||||
Unlike the `raw` format above, the time zone/UTC offset information
|
||||
contained in an RFC 2822 date string is used to adjust the date
|
||||
value to UTC prior to storage. Therefore it is important that
|
||||
this information be as accurate as possible.
|
||||
@ -287,13 +287,13 @@ format, or its format is easily convertible to it, as there is no
|
||||
ambiguity in parsing.
|
||||
|
||||
`now`::
|
||||
Always use the current time and timezone. The literal
|
||||
Always use the current time and time zone. The literal
|
||||
`now` must always be supplied for `<when>`.
|
||||
+
|
||||
This is a toy format. The current time and timezone of this system
|
||||
This is a toy format. The current time and time zone of this system
|
||||
is always copied into the identity string at the time it is being
|
||||
created by fast-import. There is no way to specify a different time or
|
||||
timezone.
|
||||
time zone.
|
||||
+
|
||||
This particular format is supplied as it's short to implement and
|
||||
may be useful to a process that wants to create a new commit
|
||||
|
@ -124,15 +124,15 @@ This automatically updates the rev_map if needed (see
|
||||
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
|
||||
|
||||
--localtime;;
|
||||
Store Git commit times in the local timezone instead of UTC. This
|
||||
Store Git commit times in the local time zone instead of UTC. This
|
||||
makes 'git log' (even without --date=local) show the same times
|
||||
that `svn log` would in the local timezone.
|
||||
that `svn log` would in the local time zone.
|
||||
+
|
||||
This doesn't interfere with interoperating with the Subversion
|
||||
repository you cloned from, but if you wish for your local Git
|
||||
repository to be able to interoperate with someone else's local Git
|
||||
repository, either don't use this option or you should both use it in
|
||||
the same local timezone.
|
||||
the same local time zone.
|
||||
|
||||
--parent;;
|
||||
Fetch only from the SVN parent of the current HEAD.
|
||||
|
@ -43,9 +43,15 @@ unreleased) version of Git, that is available from 'master'
|
||||
branch of the `git.git` repository.
|
||||
Documentation for older releases are available here:
|
||||
|
||||
* link:v1.8.4.3/git.html[documentation for release 1.8.4.3]
|
||||
* link:v1.8.5/git.html[documentation for release 1.8.5]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/1.8.5.txt[1.8.5].
|
||||
|
||||
* link:v1.8.4.4/git.html[documentation for release 1.8.4.4]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/1.8.4.4.txt[1.8.4.4],
|
||||
link:RelNotes/1.8.4.3.txt[1.8.4.3],
|
||||
link:RelNotes/1.8.4.2.txt[1.8.4.2],
|
||||
link:RelNotes/1.8.4.1.txt[1.8.4.1],
|
||||
|
@ -822,18 +822,18 @@ timed::
|
||||
Project specific override is not supported.
|
||||
|
||||
javascript-timezone::
|
||||
Enable and configure the ability to change a common timezone for dates
|
||||
Enable and configure the ability to change a common time zone for dates
|
||||
in gitweb output via JavaScript. Dates in gitweb output include
|
||||
authordate and committerdate in "commit", "commitdiff" and "log"
|
||||
views, and taggerdate in "tag" view. Enabled by default.
|
||||
+
|
||||
The value is a list of three values: a default timezone (for if the client
|
||||
hasn't selected some other timezone and saved it in a cookie), a name of cookie
|
||||
where to store selected timezone, and a CSS class used to mark up
|
||||
The value is a list of three values: a default time zone (for if the client
|
||||
hasn't selected some other time zone and saved it in a cookie), a name of cookie
|
||||
where to store selected time zone, and a CSS class used to mark up
|
||||
dates for manipulation. If you want to turn this feature off, set "default"
|
||||
to empty list: `[]`.
|
||||
+
|
||||
Typical gitweb config files will only change starting (default) timezone,
|
||||
Typical gitweb config files will only change starting (default) time zone,
|
||||
and leave other elements at their default values:
|
||||
+
|
||||
---------------------------------------------------------------------------
|
||||
@ -843,9 +843,9 @@ $feature{'javascript-timezone'}{'default'}[0] = "utc";
|
||||
The example configuration presented here is guaranteed to be backwards
|
||||
and forward compatible.
|
||||
+
|
||||
Timezone values can be "local" (for local timezone that browser uses), "utc"
|
||||
Time zone values can be "local" (for local time zone that browser uses), "utc"
|
||||
(what gitweb uses when JavaScript or this feature is disabled), or numerical
|
||||
timezones in the form of "+/-HHMM", such as "+0200".
|
||||
time zones in the form of "+/-HHMM", such as "+0200".
|
||||
+
|
||||
Project specific override is not supported.
|
||||
|
||||
|
@ -720,7 +720,7 @@ include::pretty-options.txt[]
|
||||
`--date=relative` shows dates relative to the current time,
|
||||
e.g. "2 hours ago".
|
||||
+
|
||||
`--date=local` shows timestamps in user's local timezone.
|
||||
`--date=local` shows timestamps in user's local time zone.
|
||||
+
|
||||
`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format.
|
||||
+
|
||||
@ -731,7 +731,7 @@ format, often found in E-mail messages.
|
||||
+
|
||||
`--date=raw` shows the date in the internal raw Git format `%s %z` format.
|
||||
+
|
||||
`--date=default` shows timestamps in the original timezone
|
||||
`--date=default` shows timestamps in the original time zone
|
||||
(either committer's or author's).
|
||||
|
||||
ifdef::git-rev-list[]
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
GVF=GIT-VERSION-FILE
|
||||
DEF_VER=v1.8.5-rc1
|
||||
DEF_VER=v1.8.5
|
||||
|
||||
LF='
|
||||
'
|
||||
|
@ -409,7 +409,9 @@ static struct origin *find_origin(struct scoreboard *sb,
|
||||
paths[0] = origin->path;
|
||||
paths[1] = NULL;
|
||||
|
||||
parse_pathspec(&diff_opts.pathspec, PATHSPEC_ALL_MAGIC, 0, "", paths);
|
||||
parse_pathspec(&diff_opts.pathspec,
|
||||
PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
|
||||
PATHSPEC_LITERAL_PATH, "", paths);
|
||||
diff_setup_done(&diff_opts);
|
||||
|
||||
if (is_null_sha1(origin->commit->object.sha1))
|
||||
|
@ -424,6 +424,7 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
|
||||
struct branch *branch = branch_get(branch_name);
|
||||
struct strbuf fancy = STRBUF_INIT;
|
||||
int upstream_is_gone = 0;
|
||||
int added_decoration = 1;
|
||||
|
||||
switch (stat_tracking_info(branch, &ours, &theirs)) {
|
||||
case 0:
|
||||
@ -451,9 +452,13 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
|
||||
if (upstream_is_gone) {
|
||||
if (show_upstream_ref)
|
||||
strbuf_addf(stat, _("[%s: gone]"), fancy.buf);
|
||||
else
|
||||
added_decoration = 0;
|
||||
} else if (!ours && !theirs) {
|
||||
if (show_upstream_ref)
|
||||
strbuf_addf(stat, _("[%s]"), fancy.buf);
|
||||
else
|
||||
added_decoration = 0;
|
||||
} else if (!ours) {
|
||||
if (show_upstream_ref)
|
||||
strbuf_addf(stat, _("[%s: behind %d]"), fancy.buf, theirs);
|
||||
@ -474,7 +479,8 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
|
||||
ours, theirs);
|
||||
}
|
||||
strbuf_release(&fancy);
|
||||
strbuf_addch(stat, ' ');
|
||||
if (added_decoration)
|
||||
strbuf_addch(stat, ' ');
|
||||
free(ref);
|
||||
}
|
||||
|
||||
|
@ -747,7 +747,7 @@ def parse_commit(parser):
|
||||
f = { 'deleted' : True }
|
||||
else:
|
||||
die('Unknown file command: %s' % line)
|
||||
path = c_style_unescape(path).decode('utf-8')
|
||||
path = c_style_unescape(path)
|
||||
files[path] = f
|
||||
|
||||
# only export the commits if we are on an internal proxy repo
|
||||
|
@ -128,7 +128,11 @@ static unsigned prefix_pathspec(struct pathspec_item *item,
|
||||
die(_("global 'literal' pathspec setting is incompatible "
|
||||
"with all other global pathspec settings"));
|
||||
|
||||
if (elt[0] != ':' || literal_global) {
|
||||
if (flags & PATHSPEC_LITERAL_PATH)
|
||||
global_magic = 0;
|
||||
|
||||
if (elt[0] != ':' || literal_global ||
|
||||
(flags & PATHSPEC_LITERAL_PATH)) {
|
||||
; /* nothing to do */
|
||||
} else if (elt[1] == '(') {
|
||||
/* longhand */
|
||||
@ -405,6 +409,9 @@ void parse_pathspec(struct pathspec *pathspec,
|
||||
item[i].magic = prefix_pathspec(item + i, &short_magic,
|
||||
argv + i, flags,
|
||||
prefix, prefixlen, entry);
|
||||
if ((flags & PATHSPEC_LITERAL_PATH) &&
|
||||
!(magic_mask & PATHSPEC_LITERAL))
|
||||
item[i].magic |= PATHSPEC_LITERAL;
|
||||
if (item[i].magic & magic_mask)
|
||||
unsupported_magic(entry,
|
||||
item[i].magic & magic_mask,
|
||||
|
@ -58,6 +58,13 @@ struct pathspec {
|
||||
#define PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE (1<<5)
|
||||
#define PATHSPEC_PREFIX_ORIGIN (1<<6)
|
||||
#define PATHSPEC_KEEP_ORDER (1<<7)
|
||||
/*
|
||||
* For the callers that just need pure paths from somewhere else, not
|
||||
* from command line. Global --*-pathspecs options are ignored. No
|
||||
* magic is parsed in each pathspec either. If PATHSPEC_LITERAL is
|
||||
* allowed, then it will automatically set for every pathspec.
|
||||
*/
|
||||
#define PATHSPEC_LITERAL_PATH (1<<8)
|
||||
|
||||
extern void parse_pathspec(struct pathspec *pathspec,
|
||||
unsigned magic_mask,
|
||||
|
2
po/TEAMS
2
po/TEAMS
@ -8,7 +8,7 @@ Leader: Byrial Jensen <byrial@vip.cybercity.dk>
|
||||
Language: de (German)
|
||||
Repository: https://github.com/ralfth/git-po-de
|
||||
Leader: Ralf Thielow <ralf.thielow@googlemail.com>
|
||||
Members: Thomas Rast <trast@student.ethz.ch>
|
||||
Members: Thomas Rast <tr@thomasrast.ch>
|
||||
Jan Krüger <jk@jk.gs>
|
||||
Christian Stimming <stimming@tuhh.de>
|
||||
|
||||
|
2754
po/git.pot
2754
po/git.pot
File diff suppressed because it is too large
Load Diff
2782
po/zh_CN.po
2782
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
@ -1372,8 +1372,8 @@ static void prepare_show_merge(struct rev_info *revs)
|
||||
i++;
|
||||
}
|
||||
free_pathspec(&revs->prune_data);
|
||||
parse_pathspec(&revs->prune_data, PATHSPEC_ALL_MAGIC,
|
||||
PATHSPEC_PREFER_FULL, "", prune);
|
||||
parse_pathspec(&revs->prune_data, PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
|
||||
PATHSPEC_PREFER_FULL | PATHSPEC_LITERAL_PATH, "", prune);
|
||||
revs->limited = 1;
|
||||
}
|
||||
|
||||
|
@ -39,12 +39,14 @@ test_expect_success setup '
|
||||
advance h
|
||||
'
|
||||
|
||||
script='s/^..\(b.\)[ 0-9a-f]*\[\([^]]*\)\].*/\1 \2/p'
|
||||
script='s/^..\(b.\) *[0-9a-f]* \(.*\)$/\1 \2/p'
|
||||
cat >expect <<\EOF
|
||||
b1 ahead 1, behind 1
|
||||
b2 ahead 1, behind 1
|
||||
b3 behind 1
|
||||
b4 ahead 2
|
||||
b1 [ahead 1, behind 1] d
|
||||
b2 [ahead 1, behind 1] d
|
||||
b3 [behind 1] b
|
||||
b4 [ahead 2] f
|
||||
b5 g
|
||||
b6 c
|
||||
EOF
|
||||
|
||||
test_expect_success 'branch -v' '
|
||||
@ -57,12 +59,12 @@ test_expect_success 'branch -v' '
|
||||
'
|
||||
|
||||
cat >expect <<\EOF
|
||||
b1 origin/master: ahead 1, behind 1
|
||||
b2 origin/master: ahead 1, behind 1
|
||||
b3 origin/master: behind 1
|
||||
b4 origin/master: ahead 2
|
||||
b5 brokenbase: gone
|
||||
b6 origin/master
|
||||
b1 [origin/master: ahead 1, behind 1] d
|
||||
b2 [origin/master: ahead 1, behind 1] d
|
||||
b3 [origin/master: behind 1] b
|
||||
b4 [origin/master: ahead 2] f
|
||||
b5 [brokenbase: gone] g
|
||||
b6 [origin/master] c
|
||||
EOF
|
||||
|
||||
test_expect_success 'branch -vv' '
|
||||
|
@ -108,6 +108,13 @@ test_expect_success 'no-glob environment variable works' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'blame takes global pathspec flags' '
|
||||
git --literal-pathspecs blame -- foo &&
|
||||
git --icase-pathspecs blame -- foo &&
|
||||
git --glob-pathspecs blame -- foo &&
|
||||
git --noglob-pathspecs blame -- foo
|
||||
'
|
||||
|
||||
test_expect_success 'setup xxx/bar' '
|
||||
mkdir xxx &&
|
||||
test_commit xxx xxx/bar
|
||||
|
@ -254,7 +254,9 @@ static void try_to_follow_renames(struct tree_desc *t1, struct tree_desc *t2, co
|
||||
path[0] = p->one->path;
|
||||
path[1] = NULL;
|
||||
free_pathspec(&opt->pathspec);
|
||||
parse_pathspec(&opt->pathspec, PATHSPEC_ALL_MAGIC, 0, "", path);
|
||||
parse_pathspec(&opt->pathspec,
|
||||
PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
|
||||
PATHSPEC_LITERAL_PATH, "", path);
|
||||
|
||||
/*
|
||||
* The caller expects us to return a set of vanilla
|
||||
|
@ -753,7 +753,6 @@ static void upload_pack(void)
|
||||
struct string_list symref = STRING_LIST_INIT_DUP;
|
||||
|
||||
head_ref_namespaced(find_symref, &symref);
|
||||
for_each_namespaced_ref(find_symref, &symref);
|
||||
|
||||
if (advertise_refs || !stateless_rpc) {
|
||||
reset_timeout();
|
||||
|
Loading…
Reference in New Issue
Block a user