Posted
4 days
ago
by
Vicent Marti
Hello everyone,
A new libgit2 release is here. This one is huge (most new features to
date). Check out the diff API. It's shiny.
We're nearing the 1.0.0 milestone, and things are moving much faster
now. Stay tuned for more
... [More]
features and more projects using the library.
The release has been tagged at:
https://github.com/libgit2/libgit2/tree/v0.17.0
A dist package can be found at:
https://github.com/downloads/libgit2/libgit2/libgit2-0.17.0.tar.gz
Updated documentation can be found at:
http://libgit2.github.com/libgit2/
The full change log follows after the message.
Cheers,
Vicent
=======================
libgit2 v0.17.0 "Lord of Diffstruction"
Welcome to yet another libgit2 release, this one being the
biggest we've shipped so far. Highlights on this release
include diff, branches, notes and submodules support. The new
diff API is shiny and powerful. Check it out.
Apologies, one more time, to all the early adopters for the
breaking API changes. We've been iterating on the error
handling for the library until we reached its current state,
which we believe it's significantly more usable both for normal
users and for developers of bindings to other languages.
Also, we've renamed a few legacy calls to ensure that the whole
external API uses a consistent naming scheme.
As always, check the API docs for the full list of new API calls
and backwards-incompatible changes.
http://libgit2.github.com/libgit2/
Changelog of new features follows:
Attributes:
- Added function macros to check attribute values instead of having
to manually compare them
- Added support for choosing the attribute loading order (workdir files
vs index) and to skip the systems' default `.gitattributes`
- Fixed issues when fetching attribute data on bare repositories
Blob:
- Added support for creating blobs from any file on disk (not
restricted to the repository's working directory)
- Aded support for smudge filters when writing blobs to the ODB
- So far only CRLF normalization is available
Branches:
- Added a high-level branch API:
- git_branch_create
- git_branch_delete
- git_branch_list
- git_branch_move
Commit:
- Commit messages are now filtered to match Git rules (stripping
comments and adding proper whitespacing rules)
Config:
- Added support for setting and getting multivars
- Added `git_config_get_mapped` to map the value of a config
variable based on its defaults
Diff:
- Added full diff API:
- tree to tree
- index to tree
- workdir to index
- workdir to tree
- blob to blob
- Added helper functions to print the diffs as valid patchfiles
Error handling:
- New design for the error handling API, taking into consideration
the requirements of dynamic languages
Indexer:
- Added streaming packfile indexer
Merge:
- Added support for finding the merge base between two commits
Notes:
- Full git-notes support:
- git_note_read
- git_note_message/git_note_oid
- git_note_create
- git_note_remove
- git_note_free
- git_note_foreach
References:
- Added `git_reference_name_to_oid` helper to resolve
a reference to its final OID
- Added `git_reference_cmp` to compare two references with
a stable order
Remotes:
- Added support for writing and saving remotes
- `git_remote_add`
- `git_remote_save`
- Setters for all the attributes of a remote
- Switched remote download to the new streaming packfile indexer
- Fixed fetch on HTTP and Git under Windows
- Added `git_remote_supported_url` helper to check if a protocol
can be accessed by the library
- Added `git_remote_list`
Repository:
- Made `git_repository_open` smarter when finding the `.git` folder.
- Added `git_repository_open_ext` with extra options when
opening a repository
Revwalk:
- Added support for pushing/hiding several references through a glob
- Added helper to push/hide the current HEAD to the walker
- Added helper to push/hide a single reference to the walker
Status:
- Greatly improved Status implementation using the new `diff` code
as a backend
Submodules:
- Added a partial submodules API to get information about a
submodule and list all the submodules in a repository
- git_submodule_foreach
- git_submodule_lookup
Tag:
- Added `git_tag_peel` helper to peel a tag to its pointed object
- Tag messages are now filtered to match Git rules (stripping comments
and adding proper whitespacing rules)
Tree:
- Killed the old `git_tree_diff` API, which is replaced by the
new diff code.
Signed-off-by: Vicent Marti
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted
11 days
ago
by
Junio C Hamano
The latest maintenance release Git 1.7.10.2 is now available at
the usual places.
The release tarballs are found at:
http://code.google.com/p/git-core/downloads/list
and their SHA-1 checksums
... [More]
are:
e4b7f746ff4e356baaddcad0b2911376efde031b git-1.7.10.2.tar.gz
004a2bf989b935657e2e1e6000a748d83657649f git-htmldocs-1.7.10.2.tar.gz
6cc3f80185bdd1a608cf373b05313b2adc82b898 git-manpages-1.7.10.2.tar.gz
Also the following public repositories all have a copy of the v1.7.10.2
tag and the maint branch that the tag points at:
url = git://repo.or.cz/alt-git.git
url = https://code.google.com/p/git-core/
url = git://git.sourceforge.jp/gitroot/git-core/git.git
url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
url = https://github.com/gitster/git
Git v1.7.10.2 Release Notes
===========================
Fixes since v1.7.10.1
---------------------
* 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.
Also contains minor fixes and documentation updates.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted
12 days
ago
by
Jonas Fonseca
Hello,
Version 1.0 of tig is now available. This release brings many smaller
tweaks and improvements as well as a number of fixes and compatibility
changes to work with the newer versions of git. See the release notes
below for a
... [More]
detailed list of changes.
Note that the master repository has been moved to:
git://github.com/jonas/tig.git.
So if you were tracking the old master repository, please update your
.git/config or run:
$ git remote set-url origin git://github.com/jonas/tig.git
What is tig?
------------
Tig is an ncurses-based text-mode interface for git. It functions mainly
as a git repository browser, but can also assist in staging changes for
commit at chunk level and act as a pager for output from various git
commands.
- Homepage: http://jonas.nitro.dk/tig/
- Manual: http://jonas.nitro.dk/tig/manual.html
- Tarballs: http://jonas.nitro.dk/tig/releases/
- Git URL: git://github.com/jonas/tig.git
- Gitweb: http://repo.or.cz/w/tig.git
Release notes
-------------
The master repository is git://github.com/jonas/tig.git, and the old
master repository (http://jonas.nitro.dk/tig/tig.git) will be retired.
Improvements:
- Use git-log(1)s default commit ordering. The old behavior can be
restored by adding `set commit-order = topo` to ~/.tigrc.
- Support staging of single lines. Bound to '1' default. (GH #21)
- Use to open the initial view at an arbitrary line. (GH #20)
- Add show-notes ~/.tigrc option. Notes are displayed by default.
- Support jumping to specific SHAs in the main view.
- Decorate replaced commits.
- Display line numbers in main view.
- Colorize binary diff stats. (GH #17)
- Custom colorization of lines matching a string prefix (GH #16).
Example configuration: color "Reported-by:" green default
- Use git's color settings for the main, status and diff views.
Put `set read-git-colors = no` in ~/.tigrc to disable.
- Handle editor options with multiple arguments. (GH #12)
- Show filename when running tig blame with copy detection. (GH #19)
- Use 'source ' command to load additional files from ~/.tigrc
- User-defined commands prefixed with '@' are run with no console
output, e.g.
bind generic 3 !@rm sys$command
- Make display of space changes togglable in the diff and stage view.
Bound to 'W' by default.
- Use per-file encoding specified in gitattributes(5) for blobs and
unstaged files.
- Obsolete commit-encoding option and pass --encoding=UTF-8 to revision
commands.
- Main view: show uncommitted changes as staged/unstaged commits.
Can be disabled by putting `set show-changes = no` in ~/.tigrc.
- Add %(prompt) external command variable, which will prompt for the
argument value.
- Log information about git commands when the TIG_TRACE environment
variable is set. Example: `TIG_TRACE=/tmp/tig.log tig`
- Branch view: Show the title of the last commit.
- Increase the author auto-abbreviation threshold to 10. (GH #49)
- For old commits show number of years in relative dates. (GH #50)
Bug fixes:
- Fix navigation behavior when going from branch to main view. (GH #38)
- Fix segfault when sorting the tree view by author name.
- Fix diff stat navigation for unmodified files with stat changes.
- Show branches/refs which names are a substring of the current branch.
- Stage view: fix off-by-one error when jumping to a file in a diff
with only one file.
- Fix diff-header colorization. (GH #15)
Change summary
--------------
The diffstat and log summary for changes made in this release.
BUGS | 6 -
INSTALL | 5 -
Makefile | 29 -
NEWS | 56
SITES | 4 -
TODO | 41 -
VERSION | 1 -
asciidoc.conf | 3
contrib/aspell.dict | 17 -
contrib/release.sh | 4 -
contrib/tig-completion.bash | 4 -
contrib/tig.spec.in | 2 -
contrib/tigrc | 1 -
git.h | 55
io.c | 167 -
io.h | 14 -
manual.txt | 13 -
refs.c | 242
refs.h | 41
tig.1.txt | 15 -
tig.c | 2514 -------------
tig.h | 107 -
tigmanual.7.txt | 2 -
tigrc.5.txt | 99 -
24 files changed, 2368 insertions( ), 1074 deletions(-)
4 Giuseppe Bilotta
6 Heiko Schlichting
108 Jonas Fonseca
3 Jonathan Neusch [Less]
Posted
21 days
ago
by
Junio C Hamano
The latest maintenance release Git 1.7.10.1 is now available at
the usual places.
The release tarballs are found at:
http://code.google.com/p/git-core/downloads/list
and their SHA-1 checksums
... [More]
are:
870361f93fad7999f121bc7bc91a743feda68bdb git-1.7.10.1.tar.gz
29b79312482f9aaf92ee3d970caee5ed8ab96bba git-htmldocs-1.7.10.1.tar.gz
5bff761bc40a6b3cfe35ba824357dcf611dbd5d2 git-manpages-1.7.10.1.tar.gz
Also the following public repositories all have a copy of the v1.7.10.1
tag and the maint branch that the tag points at:
url = git://repo.or.cz/alt-git.git
url = https://code.google.com/p/git-core/
url = git://git.sourceforge.jp/gitroot/git-core/git.git
url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
url = https://github.com/gitster/git
Git v1.7.10.1 Release Notes
===========================
Additions since v1.7.10
-----------------------
Localization message files for Danish and German have been added.
Fixes since v1.7.10
-------------------
* "git add -p" is not designed to deal with unmerged paths but did
not exclude them and tried to apply funny patches only to fail.
* "git blame" started missing quite a few changes from the origin
since we stopped using the diff minimalization by default in v1.7.2
era.
* When PATH contains an unreadable directory, alias expansion code
did not kick in, and failed with an error that said "git-subcmd"
was not found.
* "git clean -d -f" (not "-d -f -f") is supposed to protect nested
working trees of independent git repositories that exist in the
current project working tree from getting removed, but the
protection applied only to such working trees that are at the
top-level of the current project by mistake.
* "git commit --author=$name" did not tell the name that was being
recorded in the resulting commit to hooks, even though it does do
so when the end user overrode the authorship via the
"GIT_AUTHOR_NAME" environment variable.
* When "git commit --template F" errors out because the user did not
touch the message, it claimed that it aborts due to "empty
message", which was utterly wrong.
* The regexp configured with diff.wordregex was incorrectly reused
across files.
* An age-old corner case bug in combine diff (only triggered with -U0
and the hunk at the beginning of the file needs to be shown) has
been fixed.
* Rename detection logic used to match two empty files as renames
during merge-recursive, leading to unnatural mismerges.
* The parser in "fast-import" did not diagnose ":9" style references
that is not followed by required SP/LF as an error.
* When "git fetch" encounters repositories with too many references,
the command line of "fetch-pack" that is run by a helper
e.g. remote-curl, may fail to hold all of them. Now such an
internal invocation can feed the references through the standard
input of "fetch-pack".
* "git fetch" that recurses into submodules on demand did not check
if it needs to go into submodules when non branches (most notably,
tags) are fetched.
* "log -p --graph" used with "--stat" had a few formatting error.
* Running "notes merge --commit" failed to perform correctly when run
from any directory inside $GIT_DIR/. When "notes merge" stops with
conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
to resolve it.
* The 'push to upstream' implementation was broken in some corner
cases. "git push $there" without refspec, when the current branch
is set to push to a remote different from $there, used to push to
$there using the upstream information to a remote unreleated to
$there.
* Giving "--continue" to a conflicted "rebase -i" session skipped a
commit that only results in changes to submodules.
Also contains minor fixes and documentation updates.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted
26 days
ago
by
Junio C Hamano
A maintenance release Git 1.7.9.7 is now available at the usual
places.
This backmerges the performance fix to connectivity check performed
after "git fetch" finishes transferring objects from the other end.
The release
... [More]
tarballs are found at:
http://code.google.com/p/git-core/downloads/list
and their SHA-1 checksums are:
97f6006daccf916078896f8b24aadd882d941cf7 git-1.7.9.7.tar.gz
9a1575a4de8074b4034ae5baaf87b5ae615d635c git-htmldocs-1.7.9.7.tar.gz
6cae2f1ea878de96b24644c23abc0086ac9283cc git-manpages-1.7.9.7.tar.gz
Also the following public repositories all have a copy of the v1.7.9.7
tag and the maint-1.7.9 branch that the tag points at:
url = git://repo.or.cz/alt-git.git
url = https://code.google.com/p/git-core/
url = git://git.sourceforge.jp/gitroot/git-core/git.git
url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
url = https://github.com/gitster/git
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]