Commit graph

11 commits

Author SHA1 Message Date
wiz
04097095d0 Update to 1.6.6, requested by agc.
Git v1.6.6 Release Notes
========================

Notes on behaviour change
-------------------------

 * In this release, "git fsck" defaults to "git fsck --full" and
   checks packfiles, and because of this it will take much longer to
   complete than before.  If you prefer a quicker check only on loose
   objects (the old default), you can say "git fsck --no-full".  This
   has been supported by 1.5.4 and newer versions of git, so it is
   safe to write it in your script even if you use slightly older git
   on some of your machines.

Preparing yourselves for compatibility issues in 1.7.0
------------------------------------------------------

In git 1.7.0, which is planned to be the release after 1.6.6, there will
be a handful of behaviour changes that will break backward compatibility.

These changes were discussed long time ago and existing behaviours have
been identified as more problematic to the userbase than keeping them for
the sake of backward compatibility.

When necessary, a transition strategy for existing users has been designed
not to force them running around setting configuration variables and
updating their scripts in order to either keep the traditional behaviour
or adjust to the new behaviour, on the day their sysadmin decides to install
the new version of git.  When we switched from "git-foo" to "git foo" in
1.6.0, even though the change had been advertised and the transition
guide had been provided for a very long time, the users procrastinated
during the entire transtion period, and ended up panicking on the day
their sysadmins updated their git installation.  We are trying to avoid
repeating that unpleasantness in the 1.7.0 release.

For changes decided to be in 1.7.0, commands that will be affected
have been much louder to strongly discourage such procrastination, and
they continue to be in this release.  If you have been using recent
versions of git, you would have seen warnings issued when you used
features whose behaviour will change, with a clear instruction on how
to keep the existing behaviour if you want to.  You hopefully are
already well prepared.

Of course, we have also been giving "this and that will change in
1.7.0; prepare yourselves" warnings in the release notes and
announcement messages for the past few releases.  Let's see how well
users will fare this time.

 * "git push" into a branch that is currently checked out (i.e. pointed by
   HEAD in a repository that is not bare) will be refused by default.

   Similarly, "git push $there :$killed" to delete the branch $killed
   in a remote repository $there, when $killed branch is the current
   branch pointed at by its HEAD, will be refused by default.

   Setting the configuration variables receive.denyCurrentBranch and
   receive.denyDeleteCurrent to 'ignore' in the receiving repository
   can be used to override these safety features.  Versions of git
   since 1.6.2 have issued a loud warning when you tried to do these
   operations without setting the configuration, so repositories of
   people who still need to be able to perform such a push should
   already have been future proofed.

   Please refer to:

   http://git.or.cz/gitwiki/GitFaq#non-bare
   http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007

   for more details on the reason why this change is needed and the
   transition process that already took place so far.

 * "git send-email" will not make deep threads by default when sending a
   patch series with more than two messages.  All messages will be sent
   as a reply to the first message, i.e. cover letter.  Git 1.6.6 (this
   release) will issue a warning about the upcoming default change, when
   it uses the traditional "deep threading" behaviour as the built-in
   default.  To squelch the warning but still use the "deep threading"
   behaviour, give --chain-reply-to option or set sendemail.chainreplyto
   to true.

   It has been possible to configure send-email to send "shallow thread"
   by setting sendemail.chainreplyto configuration variable to false.
   The only thing 1.7.0 release will do is to change the default when
   you haven't configured that variable.

 * "git status" will not be "git commit --dry-run".  This change does not
   affect you if you run the command without pathspec.

   Nobody sane found the current behaviour of "git status Makefile" useful
   nor meaningful, and it confused users.  "git commit --dry-run" has been
   provided as a way to get the current behaviour of this command since
   1.6.5.

 * "git diff" traditionally treated various "ignore whitespace" options
   only as a way to filter the patch output.  "git diff --exit-code -b"
   exited with non-zero status even if all changes were about changing the
   ammount of whitespace and nothing else.  and "git diff -b" showed the
   "diff --git" header line for such a change without patch text.

   In 1.7.0, the "ignore whitespaces" will affect the semantics of the
   diff operation itself.  A change that does not affect anything but
   whitespaces will be reported with zero exit status when run with
   --exit-code, and there will not be "diff --git" header for such a
   change.


Updates since v1.6.5
--------------------

(subsystems)

 * various gitk updates including use of themed widgets under Tk 8.5,
   Japanese translation, a fix to a bug when running "gui blame" from
   a subdirectory, etc.

 * various git-gui updates including new translations, wm states fixes,
   Tk bug workaround after quitting, improved heuristics to trigger gc,
   etc.

 * various git-svn updates.

 * "git fetch" over http learned a new mode that is different from the
   traditional "dumb commit walker".

(portability)

 * imap-send can be built on mingw port.

(performance)

 * "git diff -B" has smaller memory footprint.

(usability, bells and whistles)

 * The object replace mechanism can be bypassed with --no-replace-objects
   global option given to the "git" program.

 * In configuration files, a few variables that name paths can begin with ~/
   and ~username/ and they are expanded as expected.

 * "git subcmd -h" now shows short usage help for many more subcommands.

 * "git bisect reset" can reset to an arbitrary commit.

 * "git checkout frotz" when there is no local branch "frotz" but there
   is only one remote tracking branch "frotz" is taken as a request to
   start the named branch at the corresponding remote tracking branch.

 * "git commit -c/-C/--amend" can be told with a new "--reset-author" option
   to ignore authorship information in the commit it is taking the message
   from.

 * "git describe" can be told to add "-dirty" suffix with "--dirty" option.

 * "git diff" learned --submodule option to show a list of one-line logs
   instead of differences between the commit object names.

 * "git diff" learned to honor diff.color.func configuration to paint
   function name hint printed on the hunk header "@@ -j,k +l,m @@" line
   in the specified color.

 * "git fetch" learned --all and --multiple options, to run fetch from
   many repositories, and --prune option to remove remote tracking
   branches that went stale.  These make "git remote update" and "git
   remote prune" less necessary (there is no plan to remove "remote
   update" nor "remote prune", though).

 * "git fsck" by default checks the packfiles (i.e. "--full" is the
   default); you can turn it off with "git fsck --no-full".

 * "git grep" can use -F (fixed strings) and -i (ignore case) together.

 * import-tars contributed fast-import frontend learned more types of
   compressed tarballs.

 * "git instaweb" knows how to talk with mod_cgid to apache2.

 * "git log --decorate" shows the location of HEAD as well.

 * "git log" and "git rev-list" learned to take revs and pathspecs from
   the standard input with the new "--stdin" option.

 * "--pretty=format" option to "log" family of commands learned:

   . to wrap text with the "%w()" specifier.
   . to show reflog information with "%g[sdD]" specifier.

 * "git notes" command to annotate existing commits.

 * "git merge" (and "git pull") learned --ff-only option to make it fail
   if the merge does not result in a fast-forward.

 * "git mergetool" learned to use p4merge.

 * "git rebase -i" learned "reword" that acts like "edit" but immediately
   starts an editor to tweak the log message without returning control to
   the shell, which is done by "edit" to give an opportunity to tweak the
   contents.

 * "git send-email" can be told with "--envelope-sender=auto" to use the
   same address as "From:" address as the envelope sender address.

 * "git send-email" will issue a warning when it defaults to the
   --chain-reply-to behaviour without being told by the user and
   instructs to prepare for the change of the default in 1.7.0 release.

 * In "git submodule add <repository> <path>", <path> is now optional and
   inferred from <repository> the same way "git clone <repository>" does.

 * "git svn" learned to read SVN 1.5+ and SVK merge tickets.

 * "git svn" learned to recreate empty directories tracked only by SVN.

 * "gitweb" can optionally render its "blame" output incrementally (this
   requires JavaScript on the client side).

 * Author names shown in gitweb output are links to search commits by the
   author.

Fixes since v1.6.5
------------------

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

GIT v1.6.5 Release Notes
========================

In git 1.7.0, which was planned to be the release after 1.6.5, "git
push" into a branch that is currently checked out will be refused by
default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyCurrentBranch in the receiving
repository.

Also, "git push $there :$killed" to delete the branch $killed in a remote
repository $there, when $killed branch is the current branch pointed at by
its HEAD, will be refused by default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyDeleteCurrent in the receiving
repository.

To ease the transition plan, the receiving repository of such a
push running this release will issue a big warning when the
configuration variable is missing.  Please refer to:

  http://git.or.cz/gitwiki/GitFaq#non-bare
  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007

for more details on the reason why this change is needed and the
transition plan.

Updates since v1.6.4
--------------------

(subsystems)

 * various updates to gitk, git-svn and gitweb.

(portability)

 * more improvements on mingw port.

 * mingw will also give FRSX as the default value for the LESS
   environment variable when the user does not have one.

 * initial support to compile git on Windows with MSVC.

(performance)

 * On major platforms, the system can be compiled to use with Linus's
   block-sha1 implementation of the SHA-1 hash algorithm, which
   outperforms the default fallback implementation we borrowed from
   Mozilla.

 * Unnecessary inefficiency in deepening of a shallow repository has
   been removed.

 * "git clone" does not grab objects that it does not need (i.e.
   referenced only from refs outside refs/heads and refs/tags
   hierarchy) anymore.

 * The "git" main binary used to link with libcurl, which then dragged
   in a large number of external libraries.  When using basic plumbing
   commands in scripts, this unnecessarily slowed things down.  We now
   implement http/https/ftp transfer as a separate executable as we
   used to.

 * "git clone" run locally hardlinks or copies the files in .git/ to
   newly created repository.  It used to give new mtime to copied files,
   but this delayed garbage collection to trigger unnecessarily in the
   cloned repository.  We now preserve mtime for these files to avoid
   this issue.

(usability, bells and whistles)

 * Human writable date format to various options, e.g. --since=yesterday,
   master@{2000.09.17}, are taught to infer some omitted input properly.

 * A few programs gave verbose "advice" messages to help uninitiated
   people when issuing error messages.  An infrastructure to allow
   users to squelch them has been introduced, and a few such messages
   can be silenced now.

 * refs/replace/ hierarchy is designed to be usable as a replacement
   of the "grafts" mechanism, with the added advantage that it can be
   transferred across repositories.

 * "git am" learned to optionally ignore whitespace differences.

 * "git am" handles input e-mail files that has CRLF line endings sensibly.

 * "git am" learned "--scissors" option to allow you to discard early part
   of an incoming e-mail.

 * "git archive -o output.zip" works without being told what format to
   use with an explicit "--format=zip".option.

 * "git checkout", "git reset" and "git stash" learned to pick and
   choose to use selected changes you made, similar to "git add -p".

 * "git clone" learned a "-b" option to pick a HEAD to check out
   different from the remote's default branch.

 * "git clone" learned --recursive option.

 * "git clone" from a local repository on a different filesystem used to
   copy individual object files without preserving the old timestamp, giving
   them extra lifetime in the new repository until they gc'ed.

 * "git commit --dry-run $args" is a new recommended way to ask "what would
   happen if I try to commit with these arguments."

 * "git commit --dry-run" and "git status" shows conflicted paths in a
   separate section to make them easier to spot during a merge.

 * "git cvsimport" now supports password-protected pserver access even
   when the password is not taken from ~/.cvspass file.

 * "git fast-export" learned --no-data option that can be useful when
   reordering commits and trees without touching the contents of
   blobs.

 * "git fast-import" has a pair of new front-end in contrib/ area.

 * "git init" learned to mkdir/chdir into a directory when given an
   extra argument (i.e. "git init this").

 * "git instaweb" optionally can use mongoose as the web server.

 * "git log --decorate" can optionally be told with --decorate=full to
   give the reference name in full.

 * "git merge" issued an unnecessarily scary message when it detected
   that the merge may have to touch the path that the user has local
   uncommitted changes to. The message has been reworded to make it
   clear that the command aborted, without doing any harm.

 * "git push" can be told to be --quiet.

 * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
   that is derived from the URL used for fetching.

 * informational output from "git reset" that lists the locally modified
   paths is made consistent with that of "git checkout $another_branch".

 * "git submodule" learned to give submodule name to scripts run with
   "foreach" subcommand.

 * various subcommands to "git submodule" learned --recursive option.

 * "git submodule summary" learned --files option to compare the work
   tree vs the commit bound at submodule path, instead of comparing
   the index.

 * "git upload-pack", which is the server side support for "git clone" and
   "git fetch", can call a new post-upload-pack hook for statistics purposes.

(developers)

 * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
   source directory; using tmpfs may give faster turnaround.

 * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
   build for one location, and install into another location to tar it
   up.

Fixes since v1.6.4
------------------

All of the fixes in v1.6.4.X maintenance series are included in this
release, unless otherwise noted.
2010-01-15 10:36:41 +00:00
minskim
21dd2e13d1 Update scmgit{,-base,-docs} to 1.6.4.
Major changes:
     * git-svn updates, including a new --authors-prog option to map author
       names by invoking an external program, 'git svn reset' to unwind
       'git svn fetch', support for more than one branches, documenting
       of the useful --minimize-url feature, new "git svn gc" command, etc.
     * We feed iconv with "UTF-8" instead of "utf8"; the former is
       understood more widely.  Similarly updated test scripts to use
       encoding names more widely understood (e.g. use "ISO8859-1" instead
       of "ISO-8859-1").
     * Various portability fixes/workarounds for different vintages of
       SunOS, IRIX, and Windows.
     * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.
     * Many repeated use of lstat() are optimized out in "checkout" codepath.
     * git-status (and underlying git-diff-index --cached) are optimized
       to take advantage of cache-tree information in the index.
2009-08-07 02:39:51 +00:00
hasso
d94eb12a59 Make it build on DragonFly again. 2009-07-20 03:43:07 +00:00
minskim
e163db48c0 Update scmgit to 1.6.3.3.
This version fixes the remote DoS problem in
http://secunia.com/advisories/35437/.

Major changes between 1.6.2 and 1.6.3:
* various git-svn updates.
* git-gui updates, including an update to Russian translation, and a
  fix to an infinite loop when showing an empty diff.
* gitk updates, including an update to Russian translation and
  improved Windows support.
* many uses of lstat(2) in the codepath for "git checkout" have been
  optimized out.
* usuability improvements.
* bug fixes.
2009-07-19 01:29:32 +00:00
minskim
d5c08ec380 Update scmgit{,-base,-docs} to 1.6.2.5.
Major changes in 1.6.1:

When some commands (e.g. "git log", "git diff") spawn pager
internally, we used to make the pager the parent process of the git
command that produces output.  This meant that the exit status of the
whole thing comes from the pager, not the underlying git command.  We
swapped the order of the processes around and you will see the exit
code from the command from now on.

Major changes in 1.6.2:

With the next major release, "git push" into a branch that is
currently checked out will be refused by default.  You can choose what
should happen upon such a push by setting the configuration variable
receive.denyCurrentBranch in the receiving repository.

To ease the transition plan, the receiving repository of such a push
running this release will issue a big warning when the configuration
variable is missing.

For a similar reason, "git push $there :$killed" to delete the branch
$killed in a remote repository $there, if $killed branch is the
current branch pointed at by its HEAD, gets a large warning.  You can
choose what should happen upon such a push by setting the
configuration variable receive.denyDeleteCurrent in the receiving
repository.
2009-05-05 06:21:16 +00:00
tonnerre
ef756e22cf Upgrade devel/scmgit to version 1.6.0.6 (from 1.6.0.2), in order to fix
security issues and to prepare for the outstanding upgrade of gitweb.

Changes since git 1.6.0.2:
 - Fix output line format for zip archive generation.
 - Fix continuation of git rebase -i in case of modified files (conflict).
 - Honor the pre-rebase hook for git rebase -i.
 - Fix inconsistent behavior of git diff --quiet and diff --exit-code.
 - Use multiple element hunk headers from git diff correctly.
 - Portability fix for the git diff hunk header regexps.
 - Fix git index-pack inside .git/objects/pack directory.
 - Fix git index-pack in thin-pack mode.
 - Some git stash apply fixes.
 - Fixed format string vulnerabilities (e.g. in git remote).
 - Fix behavior of git checkout -b <existingbranch>.
 - Make git checkout -q actually quiet.
 - In quiet remote operation, we don't need the remote side to send along
   all the statistics we discard.
 - Don't do cross-directory renames when creating packs.
 - git prune now also removes stale temp files under .git/objects/pack.
 - Have git merge prune empty directories.
 - Have git merge allocate enough memory for the structure itself when
   enumerating the parents of the resulting commit.
 - Stop git blame -C -C from segfaulting if it encounters a submodule
   reference.
 - If only file times were changed, don't have git rm claim local
   modifications.
 - If set-tree fails, don't let git svn output Perl compile errors.
 - Fix various NULL pointer crashes (e.g. in apply, reset, update-index).
 - Remove bash completion support for various non-space tools.
 - Don't have git add -p claim no changes if binary files have been
   modified.
 - Fix git archive in bare repositories.
 - Have git diff display the number of new or deleted files for the case
   where there have been too many of them to allow rename detection.
 - Fix git push --mirror to not try to send the stash.
 - If the remote end is up to date, still update the tracking reference upon
   git push.
 - Make git pull $there $branch:$current_branch work on unborn branches.
 - Have git reset --hard remove new paths after giving up resolving a
   conflicting merge.
 - Fix git send-email fd leak in directory scanning.
 - Make submodule directories appear as tracked in git status.
 - Have git svn invoke "git command" rather than "git-command".
 - Have git update-ref -d honor --no-deref.
 - Fix various memory leaks.
 - Fix git checkout segfault when HEAD points to a deleted branch.
 - Allow switching out of the current branch with git checkout on an
   un-checked-out state.
 - Have git fast-export export all tags.
 - Make git ls-files --with-tree=<tree> work with options other than -c.
 - If the first object in git pack-objects exceeds --max-pack-size, don't
   stuff even more objects in.
 - Stop git-p4 from replacing multilike keywords. (They don't exist.)
 - Make git tag complain about mutually incompatible options.
 - Fix performance for git internal diff on large files with repeating
   chunks.
 - Don't let git repack grab objects out of packs marked with .keep into
   new packs.
 - Fix git fsck deep recursion.
 - Fix git fast-export and fast-import on old style annotated tags without
   tagger information.
 - Have git mergetool honor the "--".
 - Fix segfault of git show <tag> where <tag> points at a nonexistent object.
 - Fix handling of lists of mail addresses for git send-email.
 - Fix branch ancestry logic in git svn if the history fetching process
   was interrupted.
2009-01-09 13:42:15 +00:00
bjs
cb19d1e93d Update to scmgit-1.6.0.2. In pkgsrc, in Makefile.common .include,
change ${.CURDIR}/../... to ../../devel/scmgit/...; makes
a lot more sense.

Fixes since v1.6.0.1
--------------------

* Installation on platforms that needs .exe suffix to git-* programs were
  broken in 1.6.0.1.

* Installation on filesystems without symbolic links support did nto
  work well.

* In-tree documentations and test scripts now use "git foo" form to set a
  better example, instead of the "git-foo" form (which is an acceptable
  form if you have "PATH=$(git --exec-path):$PATH" in your script)

* Many commands did not use the correct working tree location when used
  with GIT_WORK_TREE environment settings.

* Some systems needs to use compatibility fnmach and regex libraries
  independent from each other; the compat/ area has been reorganized to
  allow this.


* "git apply --unidiff-zero" incorrectly applied a -U0 patch that inserts
  a new line before the second line.

* "git blame -c" did not exactly work like "git annotate" when range
  boundaries are involved.

* "git checkout file" when file is still unmerged checked out contents from
  a random high order stage, which was confusing.

* "git clone $there $here/" with extra trailing slashes after explicit
  local directory name $here did not work as expected.

* "git diff" on tracked contents with CRLF line endings did not drive "less"
  intelligently when showing added or removed lines.

* "git diff --dirstat -M" did not add changes in subdirectories up
  correctly for renamed paths.

* "git diff --cumulative" did not imply "--dirstat".

* "git for-each-ref refs/heads/" did not work as expected.

* "git gui" allowed users to feed patch without any context to be applied.

* "git gui" botched parsing "diff" output when a line that begins with two
  dashes and a space gets removed or a line that begins with two pluses
  and a space gets added.

* "git gui" translation updates and i18n fixes.

* "git index-pack" is more careful against disk corruption while completing
  a thin pack.

* "git log -i --grep=pattern" did not ignore case; neither "git log -E
  --grep=pattern" triggered extended regexp.

* "git log --pretty="%ad" --date=short" did not use short format when
  showing the timestamp.

* "git log --author=author" match incorrectly matched with the
  timestamp part of "author " line in commit objects.

* "git log -F --author=author" did not work at all.

* Build procedure for "git shell" that used stub versions of some
  functions and globals was not understood by linkers on some platforms.

* "git stash" was fooled by a stat-dirty but otherwise unmodified paths
  and refused to work until the user refreshed the index.

* "git svn" was broken on Perl before 5.8 with recent fixes to reduce
  use of temporary files.

* "git verify-pack -v" did not work correctly when given more than one
  packfile.

Also contains many documentation updates.
2008-09-17 01:18:42 +00:00
bjs
4a27c47b98 +========================+
|GIT v1.6.0 Release Notes|
+========================+

User visible changes

 - Templates now installed in ${PREFIX}/share/examples/scmgit/templates
   and registered as REQD_FILES.  Template subdirectories are
   registered in MAKE_DIRS.
 - Installing the many git-foo binaries/scripts into libexec/git-core
   is now default and better supported.  If you've written any
   scripts or use any applications which expect the git-foo commands
   to be in ${PREFIX}/bin, please do update them accordingly.

+--------------------+
|Updates since v1.5.6|
+--------------------+

(subsystems)

* git-p4 in contrib learned "allowSubmit" configuration to control on
  which branch to allow "submit" subcommand.

* git-gui learned to stage changes per-line.

(portability)

* Changes for MinGW port have been merged, thanks to Johannes Sixt and
  gangs.

* Sample hook scripts shipped in templates/ are now suffixed with
  *.sample.

(documentation)

* Updated howto/update-hook-example

* Got rid of usage of "git-foo" from the tutorial and made typography
  more consistent.

* Disambiguating "--" between revs and paths is finally documented.

(performance, robustness, sanity etc.)

* index-pack used too much memory when dealing with a deep delta chain.
  This has been optimized.

* reduced excessive inlining to shrink size of the "git" binary.

* verify-pack checks the object CRC when using version 2 idx files.

* When an object is corrupt in a pack, the object became unusable even
  when the same object is available in a loose form,  We now try harder to
  fall back to these redundant objects when able.  In particular, "git
  repack -a -f" can be used to fix such a corruption as long as necessary
  objects are available.

* Performance of "git-blame -C -C" operation is vastly improved.

* git-clone does not create refs in loose form anymore (it behaves as
  if you immediately ran git-pack-refs after cloning).  This will help
  repositories with insanely large number of refs.

* core.fsyncobjectfiles configuration can be used to ensure that the loose
  objects created will be fsync'ed (this is only useful on filesystems
  that does not order data writes properly).

* "git commit-tree" plumbing can make Octopus with more than 16 parents.
  "git commit" has been capable of this for quite some time.

(usability, bells and whistles)

* even more documentation pages are now accessible via "man" and "git help".

* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop
  the discovery process of the toplevel of working tree; this may be useful
  when you are working in a slow network disk and are outside any working
  tree, as bash-completion and "git help" may still need to run in these
  places.

* By default, stash entries never expire.  Set reflogexpire in [gc
  "refs/stash"] to a reasonable value to get traditional auto-expiration
  behaviour back

* Longstanding latency issue with bash completion script has been
  addressed.  This will need to be backmerged to 'maint' later.

* pager.<cmd> configuration variable can be used to enable/disable the
  default paging behaviour per command.

* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk
  manually.

* git-am records the original tip of the branch in ORIG_HEAD before it
  starts applying patches.

* git-apply can handle a patch that touches the same path more than once
  much better than before.

* git-apply can be told not to trust the line counts recorded in the input
  patch but recount, with the new --recount option.

* git-apply can be told to apply a patch to a path deeper than what the
  patch records with --directory option.

* git-archive can be told to omit certain paths from its output using
  export-ignore attributes.

* git-archive uses the zlib default compression level when creating
  zip archive.

* git-archive's command line options --exec and --remote can take their
  parameters as separate command line arguments, similar to other commands.
  IOW, both "--exec=path" and "--exec path" are now supported.

* With -v option, git-branch describes the remote tracking statistics
  similar to the way git-checkout reports by how many commits your branch
  is ahead/behind.

* git-branch's --contains option used to always require a commit parameter
  to limit the branches with; it now defaults to list branches that
  contains HEAD if this parameter is omitted.

* git-branch's --merged and --no-merged option used to always limit the
  branches relative to the HEAD, but they can now take an optional commit
  argument that is used in place of HEAD.

* git-bundle can read the revision arguments from the standard input.

* git-cherry-pick can replay a root commit now.

* git-clone can clone from a remote whose URL would be rewritten by
  configuration stored in $HOME/.gitconfig now.

* "git-clone --mirror" is a handy way to set up a bare mirror repository.

* git-cvsserver learned to respond to "cvs co -c".

* git-diff --check now checks leftover merge conflict markers.

* "git-diff -p" learned to grab a better hunk header lines in
  BibTex, Pascal/Delphi, and Ruby files and also pays attention to
  chapter and part boundary in TeX documents.

* When remote side used to have branch 'foo' and git-fetch finds that now
  it has branch 'foo/bar', it refuses to lose the existing remote tracking
  branch and its reflog.  The error message has been improved to suggest
  pruning the remote if the user wants to proceed and get the latest set
  of branches from the remote, including such 'foo/bar'.

* fast-export learned to export and import marks file; this can be used to
  interface with fast-import incrementally.

* fast-import and fast-export learned to export and import gitlinks.

* "gitk" left background process behind after being asked to dig very deep
  history and the user killed the UI; the process is killed when the UI
  goes away now.

* git-rebase records the original tip of branch in ORIG_HEAD before it is
  rewound.

* "git rerere" can be told to update the index with auto-reused resolution
  with rerere.autoupdate configuration variable.

* git-rev-parse learned $commit^! and $commit^@ notations used in "log"
  family.  These notations are available in gitk as well, because the gitk
  command internally uses rev-parse to interpret its arguments.

* git-rev-list learned --children option to show child commits it
  encountered during the traversal, instead of showing parent commits.

* git-send-mail can talk not just over SSL but over TLS now.

* git-shortlog honors custom output format specified with
  "--pretty=format:".

* "git-stash save" learned --keep-index option.  This lets you stash away
  the local changes and bring the changes staged in the index to your
  working tree for examination and testing.

* git-stash also learned branch subcommand to create a new branch out of
  stashed changes.

* git-status gives the remote tracking statistics similar to the way
  git-checkout reports by how many commits your branch is ahead/behind.

* "git-svn dcommit" is now aware of auto-props setting the subversion user
  has.

* You can tell "git status -u" to even more aggressively omit checking
  untracked files with --untracked-files=no.

* Original SHA-1 value for "update-ref -d" is optional now.

* Error codes from gitweb are made more descriptive where possible, rather
  than "403 forbidden" as we used to issue everywhere.

(internal)

* git-merge has been reimplemented in C.

+------------------+
|Fixes since v1.5.6|
+------------------+

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

 * git-clone ignored its -u option; the fix needs to be backported to
   'maint';

 * git-mv used to lose the distinction between changes that are staged
   and that are only in the working tree, by staging both in the index
   after moving such a path.

 * "git-rebase -i -p" rewrote the parents to wrong ones when amending
   (either edit or squash) was involved, and did not work correctly
   when fast forwarding.
2008-08-20 03:04:20 +00:00
tnn
40c910b11d Patch up some rather ... odd use of $HOME:
Instead of setting prefix=$(HOME) and HOME=${PREFIX},
just set prefix=$(PREFIX) directly.
2008-02-10 19:00:27 +00:00
bjs
b43895ffb5 Update to git-1.5.4. Remove stray Makefile.common in scmgit-docs.
There are quite a few changes and (welcomed) fixes:  please see
the release notes in ${WRKSRC}/Documentation/RelNotes-1.5.4.
A small subset of the changes are included here.

Added
-----

 * i18n support for gitk.

Removal
-------

 * "git svnimport" was removed in favor of "git svn".  It is still there
   in the source tree (contrib/examples) but unsupported.

 * As git-commit and git-status have been rewritten, "git runstatus"
   helper script lost all its users and has been removed.


Fixes since v1.5.3 (unique to the 1.5.4 branch)
------------------

These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance
series.

 * The way "git diff --check" behaves is much more consistent with the way
   "git apply --whitespace=warn" works.

 * "git svn" talking with the SVN over HTTP will correctly quote branch
   and project names.

 * "git config" did not work correctly on platforms that define
   REG_NOMATCH to an even number.

 * Recent versions of AsciiDoc 8 has a change to break our
   documentation; a workaround has been implemented.

 * "git diff --color-words" colored context lines in a wrong color.
2008-02-06 07:53:31 +00:00
bjs
4bcdf3fe12 Switch GIT to use a meta-pkg hierarchy like, for example, devel/subversion.
Also, update to 1.5.3.7.


Fixes since v1.5.3.6
--------------------

 * git-send-email added 8-bit contents to the payload without
   marking it as 8-bit in a CTE header.

 * "git-bundle create a.bndl HEAD" dereferenced the symref and
   did not record the ref as 'HEAD'; this prevented a bundle
   from being used as a normal source of git-clone.

 * The code to reject nonsense command line of the form
   "git-commit -a paths..." and "git-commit --interactive
   paths..." were broken.

 * Adding a signature that is not ASCII-only to an original
   commit that is ASCII-only would make the result non-ASCII.
   "git-format-patch -s" did not mark such a message correctly
   with MIME encoding header.

 * git-add sometimes did not mark the resulting index entry
   stat-clean.  This affected only cases when adding the
   contents with the same length as the previously staged
   contents, and the previous staging made the index entry
   "racily clean".

 * git-commit did not honor GIT_INDEX_FILE the user had in the
   environment.

 * When checking out a revision, git-checkout did not report where the
   updated HEAD is if you happened to have a file called HEAD in the
   work tree.

 * "git-rev-list --objects" mishandled a tree that points at a
   submodule.

 * "git cvsimport" was not ready for packed refs that "git gc" can
   produce and gave incorrect results.

 * Many scripted Porcelains were confused when you happened to have a
   file called "HEAD" in your work tree.

 * Miscellaneous updates to the user manual and documentation.
2007-12-12 04:22:20 +00:00