天天看点

Git 2.7.0 RC0 发布

git 2.7.0 rc0 发布,git 2.7.0 更新内容如下:

ui, workflows & features

"git remote" learned "get-url" subcommand to show the url for a

given remote name used for fetching and pushing.

there was no way to defeat a configured rebase.autostash variable

from the command line, as "git rebase --no-autostash" was missing.

"git log --date=local" used to only show the normal (default)

format in the local timezone. the command learned to take 'local'

as an instruction to use the local timezone with other formats,

the refs used during a "git bisect" session is now per-worktree so

that independent bisect sessions can be done in different worktrees

created with "git worktree add".

users who are too busy to type three extra keystrokes to ask for

"git stash show -p" can now set stash.showpatch configuration

varible to true to always see the actual patch, not just the list

of paths affected with feel for the extent of damage via diffstat.

"quiltimport" allows to specify the series file by honoring the

$quilt_series environment and also --series command line option.

the use of 'good/bad' in "git bisect" made it confusing to use when

hunting for a state change that is not a regression (e.g. bugfix).

the command learned 'old/new' and then allows the end user to

say e.g. "bisect start --term-old=fast --term-new=slow" to find a

performance regression.

"git interpret-trailers" can now run outside of a git repository.

"git p4" learned to reencode the pathname it uses to communicate

with the p4 depot with a new option.

give progress meter to "git filter-branch".

allow a later "!/abc/def" to override an earlier "/abc" that

appears in the same .gitignore file to make it easier to express

"everything in /abc directory is ignored, except for ...".

teach "git p4" to send large blobs outside the repository by

talking to git lfs.

prepare for git on-disk repository representation to undergo

backward incompatible changes by introducing a new repository

format version "1", with an extension mechanism.

"git worktree" learned a "list" subcommand.

"git clone --dissociate" learned that it can be used even when

"--reference" was not used at the same time.

"git blame" learnt to take "--first-parent" and "--reverse" at the

same time when it makes sense.

"git checkout" did not follow the usual "--[no-]progress"

convention and implemented only "--quiet" that is essentially

a superset of "--no-progress". extend the command to support the

usual "--[no-]progress".

the semantics of tranfer.hiderefs configuration variable have been

extended to work better with the ref "namespace" feature that lets

you throw unrelated bunches of repositories in a single physical

repository and virtually serve them as separate ones.

send-email config variables whose values are pathnames now go

through the ~username/ expansion.

bash completion learnt to tab-complete recipient addresses given

to send-email.

the credential-cache daemon can be told to ignore sighup to work

around issue when running git from inside emacs.

performance, internal implementation, development support etc.

the infrastructure to rewrite "git submodule" in c is being built

let's polish these early parts well enough and make

graduate to 'next' and 'master', so that the more involved

follow-up can start cooking on a solid ground.

some features from "git tag -l" and "git branch -l" have been made

available to "git for-each-ref" so that eventually the unified

implementation can be shared across all three. the version merged

to the 'master' branch earlier had a performance regression in "tag

--contains", which has since been corrected.

because "test_when_finished" in our test framework queues the

clean-up tasks to be done in a shell variable, it should not be

used inside a subshell. add a mechanism to allow 'bash' to catch

such uses, and fix the ones that were found.

the debugging infrastructure for pkt-line based communication has

been improved to mark the side-band communication specifically.

(merge fd89433 jk/async-pkt-line later to maint).

update "git branch" that list existing branches, using the

ref-filter api that is shared with "git tag" and "git

for-each-ref".

the test for various line-ending conversions has been enhanced.

a few test scripts around "git p4" have been improved for

portability.

many allocations that is manually counted (correctly) that are

followed by strcpy/sprintf have been replaced with a less error

prone constructs such as xstrfmt.

the internal stripspace() function has been moved to where it

logically belongs to, i.e. strbuf api, and the command line parser

of "git stripspace" has been updated to use the parse_options api.

"git am" used to spawn "git mailinfo" via run_command() api once

per each patch, but learned to make a direct call to mailinfo()

instead.

the implementation of "git mailinfo" was refactored so that a

mailinfo() function can be directly called from inside a process.

with a "debug" helper, debugging of a single "git" invocation in

our test scripts has become a lot easier.

the "configure" script did not test for -lpthread correctly, which

upset some linkers.

cross completed task off of subtree project's todo list.

test cleanups for the subtree project.

clean up style in an ancient test t9300.

work around some test flakiness with p4d.

fsck did not correctly detect a nul-truncated header in a tag.

use a safer behavior when we hit errors verifying remote certificates.

speed up filter-branch for cases where we only care about rewriting

commits, not tree data.

the parse-options api has been updated to make "-h" command line

option work more consistently in all commands.

"git svn rebase/mkdirs" got optimized by keeping track of empty

directories better.

fix some racy client/server tests by treating sigpipe the same as a

normal non-zero exit.

the necessary infrastructure to build topics using the free travis

ci has been added. developers forking from this topic (and enabling

travis) can do their own builds, and we can turn on auto-builds for

git/git (including build-status for pull requests that people

open).

git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

Git 2.7.0 RC0 发布