2012-07-23 22:16:04 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
Changes 1.7.11.3
* The error message from "git push $there :bogo" (and its equivalent
"git push $there --delete bogo") mentioned that we tried and failed
to guess what ref is being deleted based on the LHS of the refspec,
which we don't.
* A handful of files and directories we create had tighter than
necessary permission bits when the user wanted to have group
writability (e.g. by setting "umask 002").
* "commit --amend" used to refuse amending a commit with an empty log
message, with or without "--allow-empty-message".
* "git commit --amend --only --" was meant to allow "Clever" \
people to
rewrite the commit message without making any change even when they
have already changes for the next commit added to their index, but
it never worked as advertised since it was introduced in 1.3.0 era.
* Even though the index can record pathnames longer than 1<<12 bytes,
in some places we were not comparing them in full, potentially
replacing index entries instead of adding.
* "git show"'s auto-walking behaviour was an unreliable and
unpredictable hack; it now behaves just like "git log" does when it
walks.
* "git diff", "git status" and anything that internally uses the
comparison machinery was utterly broken when the difference
involved a file with "-" as its name. This was due to the way "git
diff --no-index" was incorrectly bolted on to the system, making
any comparison that involves a file "-" at the root level
incorrectly read from the standard input.
* We did not have test to make sure "git rebase" without extra options
filters out an empty commit in the original history.
* "git fast-export" produced an input stream for fast-import without
properly quoting pathnames when they contain SPs in them.
* "git checkout --detach", when you are still on an unborn branch,
should be forbidden, but it wasn't.
* Some implementations of Perl terminates "lines" with CRLF even when
the script is operating on just a sequence of bytes. Make sure to
use "$PERL_PATH", the version of Perl the user told Git to use, in
our tests to avoid unnecessary breakages in tests.
Also contains minor typofixes and documentation updates.
|
2012-07-18 14:09:57 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
Changes 1.7.11.2:
* On Cygwin, the platform pread(2) is not thread safe, just like our
own compat/ emulation, and cannot be used in the index-pack
program. Makefile variable NO_THREAD_SAFE_PREAD can be defined to
avoid use of this function in a threaded program.
* "git add" allows adding a regular file to the path where a
submodule used to exist, but "git update-index" does not allow an
equivalent operation to Porcelain writers.
* "git archive" incorrectly computed the header checksum; the symptom
was observed only when using pathnames with hi-bit set.
* "git blame" did not try to make sure that the abbreviated commit
object names in its output are unique.
* Running "git bundle verify" on a bundle that records a complete
history said "it requires these 0 commits".
* "git clone --single-branch" to clone a single branch did not limit
the cloning to the specified branch.
* "git diff --no-index" did not correctly handle relative paths and
did not correctly give exit codes when run under "--quiet" option.
* "git diff --no-index" did not work with pagers correctly.
* "git diff COPYING HEAD:COPYING" gave a nonsense error message that
claimed that the treeish HEAD did not have COPYING in it.
* When "git log" gets "--simplify-merges/by-decoration" \
together with
"--first-parent", the combination of these options makes the
simplification logic to use in-core commit objects that haven't
been examined for relevance, either producing incorrect result or
taking too long to produce any output. Teach the simplification
logic to ignore commits that the first-parent traversal logic
ignored when both are in effect to work around the issue.
* "git ls-files --exclude=t -i" did not consider anything under t/ as
excluded, as it did not pay attention to exclusion of leading paths
while walking the index. Other two users of excluded() are also
updated.
* "git request-pull $url dev" when the tip of "dev" branch \
was tagged
with "ext4-for-linus" used the contents from the tag in the output
but still asked the "dev" branch to be pulled, not the tag.
Also contains minor typofixes and documentation updates.
|
2012-07-09 16:30:50 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message:
Changes 1.7.11.1:
* The cross links in the HTML version of manual pages were broken.
Also contains minor typofixes and documentation updates.
Changes 1.7.11:
UI, Workflows & Features
* A new mode for push, "simple", which is a cross between \
"current"
and "upstream", has been introduced. "git push" without \
any refspec
will push the current branch out to the same name at the remote
repository only when it is set to track the branch with the same
name over there. The plan is to make this mode the new default
value when push.default is not configured.
* A couple of commands learned the "--column" option to produce
columnar output.
* A third-party tool "git subtree" is distributed in contrib/
* A remote helper that acts as a proxy and caches ssl session for the
https:// transport is added to the contrib/ area.
* Error messages given when @{u} is used for a branch without its
upstream configured have been clarified.
* Even with the "-q"uiet option, "checkout" used to report \
setting up
tracking. Also "branch" learned the "-q"uiet option to \
squelch
informational message.
* Your build platform may support hardlinks but you may prefer not to
use them, e.g. when installing to DESTDIR to make a tarball and
untarring on a filesystem that has poor support for hardlinks.
There is a Makefile option NO_INSTALL_HARDLINKS for you.
* The smart-http backend used to always override GIT_COMMITTER_*
variables with REMOTE_USER and REMOTE_ADDR, but these variables are
now preserved when set.
* "git am" learned the "--include" option, which is an \
opposite of
existing the "--exclude" option.
* When "git am -3" needs to fall back to an application of the patch
to a synthesized preimage followed by a 3-way merge, the paths that
needed such treatment are now reported to the end user, so that the
result in them can be eyeballed with extra care.
* The output from "diff/log --stat" used to always allocate 4 columns
to show the number of modified lines, but not anymore.
* "git difftool" learned the "--dir-diff" option to spawn \
external
diff tools that can compare two directory hierarchies at a time
after populating two temporary directories, instead of running an
instance of the external tool once per a file pair.
* The "fmt-merge-msg" command learned to list the primary contributors
involved in the side topic you are merging in a comment in the merge
commit template.
* "git rebase" learned to optionally keep commits that do not
introduce any change in the original history.
* "git push --recurse-submodules" learned to optionally look into the
histories of submodules bound to the superproject and push them
out.
* A 'snapshot' request to "gitweb" honors If-Modified-Since: header,
based on the commit date.
* "gitweb" learned to highlight the patch it outputs even more.
|
2012-06-18 19:36:56 by Greg Troxel | Files touched by this commit (2) |
Log message:
Update to v1.7.10.5.
Fixes since v1.7.10.4
---------------------
* "git fast-export" did not give a readable error message when the
same mark erroneously appeared twice in the --import-marks input.
* "git rebase -p" used to pay attention to rebase.autosquash which
was wrong. "git rebase -p -i" should, but "git rebase -p" by
itself should not.
(ok agc@ to commit during freeze)
|
2012-06-14 14:52:48 by Greg Troxel | Files touched by this commit (2) | |
Log message:
Git v1.7.10.4 Release Notes
===========================
Fixes since v1.7.10.3
---------------------
* The message file for Swedish translation has been updated a bit.
* A name taken from mailmap was copied into an internal buffer
incorrectly and could overun the buffer if it is too long.
* A malformed commit object that has a header line chomped in the
middle could kill git with a NULL pointer dereference.
* An author/committer name that is a single character was mishandled
as an invalid name by mistake.
* The progress indicator for a large "git checkout" was sent to
stderr even if it is not a terminal.
* "git grep -e '$pattern'", unlike the case where the patterns are
read from a file, did not treat individual lines in the given
pattern argument as separate regular expressions as it should.
* When "git rebase" was given a bad commit to replay the history on,
its error message did not correctly give the command line argument
it had trouble parsing.
Also contains minor fixes and documentation updates.
|
2012-05-28 15:33:21 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
Changes 1.7.10.3:
* The message file for German translation has been updated a bit.
* Running "git checkout" on an unborn branch used to corrupt HEAD.
* When checking out another commit from an already detached state, we
used to report all commits that are not reachable from any of the
refs as lossage, but some of them might be reachable from the new
HEAD, and there is no need to warn about them.
* Some time ago, "git clone" lost the progress output for its
"checkout" phase; when run without any "--quiet" option, \
it should
give progress to the lengthy operation.
* The directory path used in "git diff --no-index", when it recurses
down, was broken with a recent update after v1.7.10.1 release.
* "log -z --pretty=tformat:..." did not terminate each record with
NUL. The fix is not entirely correct when the output also asks for
--patch and/or --stat, though.
* The DWIM behaviour for "log --pretty=format:%gd -g" was somewhat
broken and gave undue precedence to configured log.date, causing
"git stash list" to show "stash@{time stamp string}".
* "git status --porcelain" ignored "--branch" option by \
mistake. The
output for "git status --branch -z" was also incorrect and did not
terminate the record for the current branch name with NUL as asked.
* When a submodule repository uses alternate object store mechanism,
some commands that were started from the superproject did not
notice it and failed with "No such object" errors. The subcommands
of "git submodule" command that recursed into the submodule in a
separate process were OK; only the ones that cheated and peeked
directly into the submodule's repository from the primary process
were affected.
|
2012-05-15 22:28:58 by Adam Ciarcinski | Files touched by this commit (2) |
Log message:
Changes 1.7.10.2:
* The test scaffolding for git-daemon was flaky.
* The test scaffolding for fast-import was flaky.
* The filesystem boundary was not correctly reported when .git directory
discovery stopped at a mount point.
* HTTP transport that requires authentication did not work correctly when
multiple connections are used simultaneously.
* Minor memory leak during unpack_trees (hence "merge" and \
"checkout"
to check out another branch) has been plugged.
* In the older days, the header "Conflicts:" in \
"cherry-pick" and "merge"
was separated by a blank line from the list of paths that follow for
readability, but when "merge" was rewritten in C, we lost it by
mistake. Remove the newline from "cherry-pick" to make them match
again.
* The command line parser choked "git cherry-pick $name" when $name can
be both revision name and a pathname, even though $name can never be a
path in the context of the command.
* The "include.path" facility in the configuration mechanism added in
1.7.10 forgot to interpret "~/path" and "~user/path" as it \
should.
* "git config --rename-section" to rename an existing section into a
bogus one did not check the new name.
* The "diff --no-index" codepath used limited-length buffers, risking
pathnames getting truncated. Update it to use the strbuf API.
* The report from "git fetch" said "new branch" even for a \
non branch
ref.
* The http-backend (the server side of the smart http transfer) used
to overwrite GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL with the
value obtained from REMOTE_USER unconditionally, making it
impossible for the server side site-specific customization to use
different identity sources to affect the names logged. It now uses
REMOTE_USER only as a fallback value.
* "log --graph" was not very friendly with "--stat" option \
and its
output had line breaks at wrong places.
* Octopus merge strategy did not reduce heads that are recorded in the
final commit correctly.
* "git push" over smart-http lost progress output a few releases ago;
this release resurrects it.
* The error and advice messages given by "git push" when it fails due
to non-ff were not very helpful to new users; it has been broken
into three cases, and each is given a separate advice message.
* The insn sheet given by "rebase -i" did not make it clear that the
insn lines can be re-ordered to affect the order of the commits in
the resulting history.
* "git repack" used to write out unreachable objects as loose objects
when repacking, even if such loose objects will immediately pruned
due to its age.
* A contrib script "rerere-train" did not work out of the box unless
user futzed with her $PATH.
* "git rev-parse --show-prefix" used to emit nothing when run at the
top-level of the working tree, but now it gives a blank line.
* The i18n of error message "git stash save" was not properly done.
* "git submodule" used a sed script that some platforms mishandled.
* When using a Perl script on a system where "perl" found on user's
$PATH could be ancient or otherwise broken, we allow builders to
specify the path to a good copy of Perl with $PERL_PATH. The
gitweb test forgot to use that Perl when running its test.
|
2012-05-06 20:08:59 by Adam Ciarcinski | Files touched by this commit (4) |
Log message:
Changes 1.7.10.1:
* Localization message files for Danish and German have been added.
|
2012-04-13 22:43:24 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
Changes 1.7.10:
* various "gitk" updates.
- show the path to the top level directory in the window title
- update preference edit dialog
- display file list correctly when directories are given on command line
- make "git-describe" output in the log message into a clickable link
- avoid matching the UNIX timestamp part when searching all fields
- give preference to symbolic font names like sans & monospace
- allow comparing two commits using a mark
- "gitk" honors log.showroot configuration.
* Teams for localizing the messages from the Porcelain layer of
commands are starting to form, thanks to Jiang Xin who volunteered
to be the localization coordinator. Translated messages for
simplified Chinese, Swedish and Portuguese are available.
* The configuration mechanism learned an "include" facility; an
assignment to the include.path pseudo-variable causes the named
file to be included in-place when Git looks up configuration
variables.
* A content filter (clean/smudge) used to be just a way to make the
recorded contents "more useful", and allowed to fail; a filter can
now optionally be marked as "required".
* Options whose names begin with "--no-" (e.g. the "--no-verify"
option of the "git commit" command) can be negated by omitting
"no-" from its name, e.g. "git commit --verify".
* "git am" learned to pass "-b" option to underlying \
"git mailinfo", so
that a bracketed string other than "PATCH" at the beginning can be kept.
* "git clone" learned "--single-branch" option to limit \
cloning to a
single branch (surprise!); tags that do not point into the history
of the branch are not fetched.
* "git clone" learned to detach the HEAD in the resulting repository
when the user specifies a tag with "--branch" (e.g., \
"--branch=v1.0").
Clone also learned to print the usual "detached HEAD" advice in such
a case, similar to "git checkout v1.0".
* When showing a patch while ignoring whitespace changes, the context
lines are taken from the postimage, in order to make it easier to
view the output.
More...
|
2012-03-09 18:02:15 by Adam Ciarcinski | Files touched by this commit (7) |
Log message:
Changes 1.7.9.3:
* "git p4" (in contrib/) submit the changes to a wrong place when the
"--use-client-spec" option is set.
* The config.mak.autogen generated by optional autoconf support tried
to link the binary with -lintl even when libintl.h is missing from
the system.
* When the filter driver exits before reading the content before the
main git process writes the contents to be filtered to the pipe to
it, the latter could be killed with SIGPIPE instead of ignoring
such an event as an error.
* "git add --refresh <pathspec>" used to warn about unmerged paths
outside the given pathspec.
* The bulk check-in codepath in "git add" streamed contents that
needs smudge/clean filters without running them, instead of punting
and delegating to the codepath to run filters after slurping
everything to core.
* "git branch --with $that" assumed incorrectly that the user will never
ask the question with nonsense value in $that.
* "git bundle create" produced a corrupt bundle file upon seeing
commits with excessively long subject line.
* When a remote helper exits before reading the blank line from the
main git process to signal the end of commands, the latter could be
killed with SIGPIPE. Instead we should ignore such event as a
non-error.
* The commit log template given with "git merge --edit" did not have
a short instructive text like what "git commit" gives.
* "git rev-list --verify-objects -q" omitted the extra verification
it needs to do over "git rev-list --objects -q" by mistake.
* "gitweb" used to drop warnings in the log file when \
"heads" view is
accessed in a repository whose HEAD does not point at a valid
branch.
* An invalid regular expression pattern given by an end user made
"gitweb" to return garbled response.
|