Git available in Ubuntu PPA

Git was released on May 19, 2011 and is now available in my PPA. Git is available for Ubuntu 11.04, Ubuntu 10.10 and Ubuntu 10.04. To use my PPA follow the instructions on the page Git Packages for Ubuntu.

As I was not able to create the previous release I’ll give you the release notes starting at git 1.7.5

Git v1.7.5 Release Notes

Updates since v1.7.4

 * Various MinGW portability fixes.

 * Various git-p4 enhancements (in contrib).

 * Various vcs-svn, git-svn and gitk enhancements and fixes.

 * Various git-gui updates (0.14.0).

 * Update to more modern HP-UX port.

 * The codebase is getting prepared for i18n/l10n; no translated
   strings nor translation mechanism in the code yet, but the strings
   are being marked for l10n.

 * The bash completion script can now complete symmetric difference
   for "git diff" command, e.g. "git diff ...bra".

 * The default minimum length of abbreviated and unique object names
   can now be configured by setting the core.abbrev configuration

 * "git apply -v" reports offset lines when the patch does not apply at
   the exact location recorded in the diff output.

 * "git config" used to be also known as "git repo-config", but the old
   name is now officially deprecated.

 * "git checkout --detach " is a more user friendly synonym for
   "git checkout ^0".

 * "git checkout" performed on detached HEAD gives a warning and
   advice when the commit being left behind will become unreachable from
   any branch or tag.

 * "git cherry-pick" and "git revert" can be told to use a custom merge
   strategy, similar to "git rebase".

 * "git cherry-pick" remembers which commit failed to apply when it is
   stopped by conflicts, making it unnecessary to use "commit -c $commit"
   to conclude it.

 * "git cvsimport" bails out immediately when the cvs server cannot be
   reached, without spewing unnecessary error messages that complain about
   the server response it never got.

 * "git fetch" vs "git upload-pack" transfer learned 'no-done'
   protocol extension to save one round-trip after the content
   negotiation is done. This saves one HTTP RPC, reducing the overall
   latency for a trivial fetch.

 * "git fetch" can be told to recursively fetch submodules on-demand.

 * "git grep -f " learned to treat "-" as "read from the
   standard input stream".

 * "git grep --no-index" did not honor pathspecs correctly, returning
   paths outside the specified area.

 * "git init" learned the --separate-git-dir option to allow the git
   directory for a new repository created elsewhere and linked via the
   gitdir mechanism. This is primarily to help submodule support later
   to switch between a branch of superproject that has the submodule
   and another that does not.

 * "git log" type commands now understand globbing pathspecs.  You
   can say "git log -- '*.txt'" for example.

 * "git log" family of commands learned --cherry and --cherry-mark
   options that can be used to view two diverged branches while omitting
   or highlighting equivalent changes that appear on both sides of a
   symmetric difference (e.g. "log --cherry A...B").

 * A lazy "git merge" that didn't say what to merge used to be an error.
   When run on a branch that has an upstream defined, however, the command
   now merges from the configured upstream.

 * "git mergetool" learned how to drive "beyond compare 3" as well.

 * "git rerere forget" without pathspec used to forget all the saved
   conflicts that relate to the current merge; it now requires you to
   give it pathspecs.

 * "git rev-list --objects $revs -- $pathspec" now limits the objects listed
   in its output properly with the pathspec, in preparation for narrow

 * "git push" with no parameters gives better advice messages when
   "tracking" is used as the push.default semantics or there is no remote
   configured yet.

 * A possible value to the "push.default" configuration variable,
   'tracking', gained a synonym that more naturally describes what it
   does, 'upstream'.

 * "git rerere" learned a new subcommand "remaining" that is similar to
   "status" and lists the paths that had conflicts which are known to
   rerere, but excludes the paths that have already been marked as
   resolved in the index from its output.  "git mergetool" has been
   updated to use this facility.

Also contains various documentation updates.

Fixes since v1.7.4

All of the fixes in the v1.7.4.X maintenance series are included in this
release, unless otherwise noted.

 * "git fetch" from a client that is mostly following the remote
   needlessly told all of its refs to the server for both sides to
   compute the set of objects that need to be transferred efficiently,
   instead of stopping when the server heard enough. In a project with
   many tags, this turns out to be extremely wasteful, especially over
   the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).

 * "git fetch" run from a repository that uses the same repository as
   its alternate object store as the repository it is fetching from
   did not tell the server that it already has access to objects
   reachable from the refs in their common alternate object store,
   causing it to fetch unnecessary objects (jc/maint-fetch-alt).

 * "git remote add --mirror" created a configuration that is suitable for
   doing both a mirror fetch and a mirror push at the same time, which
   made little sense.  We now warn and require the command line to specify
   either --mirror=fetch or --mirror=push.
Git v1.7.5.1 Release Notes

Fixes since v1.7.5

 * When an object "$tree:$path" does not exist, if $path does exist in the
   subtree of $tree that corresponds to the subdirectory the user is in,
   git now suggests using "$tree:./$path" in addition to the advice to use
   the full path from the root of the working tree.

 * The "--date=relative" output format used to say "X years, 12 months"
   when it should have said "X+1 years".

 * The smart-HTTP transfer was broken in 1.7.5 when the client needs
   to issue a small POST (which uses content-length) and then a large
   POST (which uses chunked) back to back.

 * "git clean" used to fail on an empty directory that is not readable,
   even though rmdir(2) could remove such a directory.  Now we attempt it
   as the last resort.

 * The "--dirstat" option of "diff" family of commands used to totally
   ignore a change that only rearranged lines within a file.  Such a
   change now counts as at least a minimum but non zero change.

 * The "--dirstat" option of "diff" family of commands used to use the
   pathname in the original, instead of the pathname in the result,
   when renames are involved.

 * "git pack-object" did not take core.bigfilethreashold into account
   (unlike fast-import); now it does.

 * "git reflog" ignored options like "--format=.." on the command line.

 * "git stash apply" used to refuse to work if there was any change in
   the working tree, even when the change did not overlap with the change
   the stash recorded.

 * "git stash apply @{99999}" was not diagnosed as an error, even when you
   did not have that many stash entries.

 * An error message from "git send-email" to diagnose a broken SMTP
   connection configuration lacked a space between "hello="
   and "port=".

And other minor fixes and documentation updates.
Git v1.7.5.2 Release Notes

The release notes to forgot to mention:

 * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now
   mean the same thing.

 * "git upload-pack" (hence "git push" over git native protocol) had a
   subtle race condition that could lead to a deadlock.

Fixes since v1.7.5.1

 * "git add -p" did not work correctly when a hunk is split and then
   one of them was given to the editor.

 * "git add -u" did not resolve a conflict where our history deleted and
   their history modified the same file, and the working tree resolved to
   keep a file.

 * "git cvsimport" did not know that CVSNT stores its password file in a
   location different from the traditional CVS.

 * "git diff-files" did not show the mode information from the working
   tree side of an unmerged path correctly.

 * "git diff -M --cached" used to use unmerged path as a possible rename
   source candidate, which made no sense.

 * The option name parser in "git fast-import" used prefix matches for
   some options where it shouldn't, and accepted non-existent options,
   e.g. "--relative-marksmith" or "--forceps".

 * "git format-patch" did not quote RFC822 special characters in the
   email address (e.g From: Junio C. Hamano , not
   From: "Junio C. Hamano" ).

 * "git format-patch" when run with "--quiet" option used to produce a
   nonsense result that consists of alternating empty output.

 * In "git merge", per-branch branch..mergeoptions configuration
   variables did not override the fallback default merge.
This article is filed under the categories Ubuntu » Software » git and has the following tags associated with it: , , .