Commit graph

11 commits

Author SHA1 Message Date
adam
53e7a47abd Changes 2.5.0:
UI, Workflows & Features

 * The bash completion script (in contrib/) learned a few options that
   "git revert" takes.

 * Whitespace breakages in deleted and context lines can also be
   painted in the output of "git diff" and friends with the new
   --ws-error-highlight option.

 * List of commands shown by "git help" are grouped along the workflow
   elements to help early learners.

 * "git p4" now detects the filetype (e.g. binary) correctly even when
   the files are opened exclusively.

 * git p4 attempts to better handle branches in Perforce.

 * "git p4" learned "--changes-block-size <n>" to read the changes in
   chunks from Perforce, instead of making one call to "p4 changes"
   that may trigger "too many rows scanned" error from Perforce.

 * More workaround for Perforce's row number limit in "git p4".

 * Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
   command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
   did not let the shell interpolate the contents of the environment
   variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
   This release makes it in line with the rest of Git, as well as with
   Perforce.

 * A new short-hand <branch>@{push} denotes the remote-tracking branch
   that tracks the branch at the remote the <branch> would be pushed
   to.

 * "git show-branch --topics HEAD" (with no other arguments) did not
   do anything interesting.  Instead, contrast the given revision
   against all the local branches by default.

 * A replacement for contrib/workdir/git-new-workdir that does not
   rely on symbolic links and make sharing of objects and refs safer
   by making the borrowee and borrowers aware of each other.

   Consider this as still an experimental feature; its UI is still
   likely to change.

 * Tweak the sample "store" backend of the credential helper to honor
   XDG configuration file locations when specified.

 * A heuristic we use to catch mistyped paths on the command line
   "git <cmd> <revs> <pathspec>" is to make sure that all the non-rev
   parameters in the later part of the command line are names of the
   files in the working tree, but that means "git grep $str -- \*.c"
   must always be disambiguated with "--", because nobody sane will
   create a file whose name literally is asterisk-dot-see.  Loosen the
   heuristic to declare that with a wildcard string the user likely
   meant to give us a pathspec.

 * "git merge FETCH_HEAD" learned that the previous "git fetch" could
   be to create an Octopus merge, i.e. recording multiple branches
   that are not marked as "not-for-merge"; this allows us to lose an
   old style invocation "git merge <msg> HEAD $commits..." in the
   implementation of "git pull" script; the old style syntax can now
   be deprecated (but not removed yet).

 * Filter scripts were run with SIGPIPE disabled on the Git side,
   expecting that they may not read what Git feeds them to filter.
   We however treated a filter that does not read its input fully
   before exiting as an error.  We no longer do and ignore EPIPE
   when writing to feed the filter scripts.

   This changes semantics, but arguably in a good way.  If a filter
   can produce its output without fully consuming its input using
   whatever magic, we now let it do so, instead of diagnosing it
   as a programming error.

 * Instead of dying immediately upon failing to obtain a lock, the
   locking (of refs etc) retries after a short while with backoff.

 * Introduce http.<url>.SSLCipherList configuration variable to tweak
   the list of cipher suite to be used with libcURL when talking with
   https:// sites.

 * "git subtree" script (in contrib/) used "echo -n" to produce
   progress messages in a non-portable way.

 * "git subtree" script (in contrib/) does not have --squash option
   when pushing, but the documentation and help text pretended as if
   it did.

 * The Git subcommand completion (in contrib/) no longer lists credential
   helpers among candidates; they are not something the end user would
   invoke interactively.

 * The index file can be taught with "update-index --untracked-cache"
   to optionally remember already seen untracked files, in order to
   speed up "git status" in a working tree with tons of cruft.

 * "git mergetool" learned to drive WinMerge as a backend.

 * "git upload-pack" that serves "git fetch" can be told to serve
   commits that are not at the tip of any ref, as long as they are
   reachable from a ref, with uploadpack.allowReachableSHA1InWant
   configuration variable.
2015-07-31 12:57:23 +00:00
ryoon
bd8fa27fc2 Update to 2.4.5
Changelog:
Git v2.4.5 Release Notes
========================

Fixes since v2.4.4
------------------

 * The setup code used to die when core.bare and core.worktree are set
   inconsistently, even for commands that do not need working tree.

 * There was a dead code that used to handle "git pull --tags" and
   show special-cased error message, which was made irrelevant when
   the semantics of the option changed back in Git 1.9 days.

 * "color.diff.plain" was a misnomer; give it 'color.diff.context' as
   a more logical synonym.

 * The configuration reader/writer uses mmap(2) interface to access
   the files; when we find a directory, it barfed with "Out of memory?".

 * Recent "git prune" traverses young unreachable objects to safekeep
   old objects in the reachability chain from them, which sometimes
   showed unnecessary error messages that are alarming.

 * "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
   when it was told to stop sequencing with 'exec' insn).

Also contains typofixes, documentation updates and trivial code
clean-ups.


Git v2.4.4 Release Notes
========================

Fixes since v2.4.3
------------------

 * l10n updates for German.

 * An earlier leakfix to bitmap testing code was incomplete.

 * "git clean pathspec..." tried to lstat(2) and complain even for
   paths outside the given pathspec.

 * Communication between the HTTP server and http_backend process can
   lead to a dead-lock when relaying a large ref negotiation request.
   Diagnose the situation better, and mitigate it by reading such a
   request first into core (to a reasonable limit).

 * The clean/smudge interface did not work well when filtering an
   empty contents (failed and then passed the empty input through).
   It can be argued that a filter that produces anything but empty for
   an empty input is nonsense, but if the user wants to do strange
   things, then why not?

 * Make "git stash something --help" error out, so that users can
   safely say "git stash drop --help".

 * Clarify that "log --raw" and "log --format=raw" are unrelated
   concepts.

 * Catch a programmer mistake to feed a pointer not an array to
   ARRAY_SIZE() macro, by using a couple of GCC extensions.

Also contains typofixes, documentation updates and trivial code
clean-ups.
2015-07-04 05:56:29 +00:00
wiz
0982effce2 Recursive PKGREVISION bump for all packages mentioning 'perl',
having a PKGNAME of p5-*, or depending such a package,
for perl-5.22.0.
2015-06-12 10:48:20 +00:00
adam
11015567e8 Changes 2.2.0:
Ports
* Building on older MacOS X systems automatically sets
  the necessary NO_APPLE_COMMON_CRYPTO build-time option.
* Building with NO_PTHREADS has been resurrected.
* Compilation options have been updated a bit to better support the
  z/OS port.

UI, Workflows & Features
* "git archive" learned to filter what gets archived with a pathspec.
* "git config --edit --global" starts from a skeletal per-user
  configuration file contents, instead of a total blank, when the
  user does not already have any global config.  This immediately
  reduces the need to later ask "Have you forgotten to set
  core.user?", and we can add more to the template as we gain
  more experience.
* "git stash list -p" used to be almost always a no-op because each
  stash entry is represented as a merge commit.  It learned to show
  the difference between the base commit version and the working tree
  version, which is in line with what "git stash show" gives.
* Sometimes users want to report a bug they experience on their
  repository, but they are not at liberty to share the contents of
  the repository.  "fast-export" was taught an "--anonymize" option
  to replace blob contents, names of people, paths and log
  messages with bland and simple strings to help them.
* "git difftool" learned an option to stop feeding paths to the
  diff backend when it exits with a non-zero status.
* "git grep" learned to paint (or not paint) partial matches on
  context lines when showing "grep -C<num>" output in color.
* "log --date=iso" uses a slight variant of the ISO 8601 format that is
  more human readable.  A new "--date=iso-strict" option gives
  datetime output that conforms more strictly.
* The logic "git prune" uses is more resilient against various corner
  cases.
* A broken reimplementation of Git could write an invalid index that
  records both stage 0 and higher-stage entries for the same path.
  We now notice and reject such an index, as there is no sensible
  fallback (we do not know if the broken tool wanted to resolve and
  forgot to remove the higher-stage entries, or if it wanted to unresolve
  and forgot to remove the stage 0 entry).
* The temporary files "git mergetool" uses are renamed to avoid too
  many dots in them (e.g. a temporary file for "hello.c" used to be
  named e.g. "hello.BASE.4321.c" but now uses underscore instead,
  e.g. "hello_BASE_4321.c", to allow us to have multiple variants).
* The temporary files "git mergetool" uses can be placed in a newly
  created temporary directory, instead of the current directory, by
  setting the mergetool.writeToTemp configuration variable.
* "git mergetool" understands "--tool bc" now, as version 4 of
  BeyondCompare can be driven the same way as its version 3 and it
  feels awkward to say "--tool bc3" to run version 4.
* The "pre-receive" and "post-receive" hooks are no longer required
  to consume their input fully (not following this requirement used
  to result in intermittent errors in "git push").
* The pretty-format specifier "%d", which expands to " (tagname)"
  for a tagged commit, gained a cousin "%D" that just gives the
  "tagname" without frills.
* "git push" learned "--signed" push, that allows a push (i.e.
  request to update the refs on the other side to point at a new
  history, together with the transmission of necessary objects) to be
  signed, so that it can be verified and audited, using the GPG
  signature of the person who pushed, that the tips of branches at a
  public repository really point the commits the pusher wanted to,
  without having to "trust" the server.
* "git interpret-trailers" is a new filter to programmatically edit
  the tail end of the commit log messages, e.g. "Signed-off-by:".
* "git help everyday" shows the "Everyday Git in 20 commands or so"
  document, whose contents have been updated to match more modern
  Git practice.
* On the "git svn" front, work progresses to reduce memory consumption and
  to improve handling of mergeinfo.
2014-11-30 18:43:41 +00:00
adam
971b663ae7 Changes 2.1.0:
Backward compatibility notes
----------------------------
 * The default value we give to the environment variable LESS has been
   changed from "FRSX" to "FRX", losing "S" (chop long lines instead
   of wrapping).  Existing users who prefer not to see line-wrapped
   output may want to set
     $ git config core.pager "less -S"
   to restore the traditional behaviour.  It is expected that people
   find output from most subcommands easier to read with the new
   default, except for "blame" which tends to produce really long
   lines.  To override the new default only for "git blame", you can
   do this:
     $ git config pager.blame "less -S"
 * A few disused directories in contrib/ have been retired.

Updates since v2.0
------------------
UI, Workflows & Features
 * Since the very beginning of Git, we gave the LESS environment a
   default value "FRSX" when we spawn "less" as the pager.  "S" (chop
   long lines instead of wrapping) has been removed from this default
   set of options, because it is more or less a personal taste thing,
   as opposed to the others that have good justifications (i.e. "R" is
   very much justified because many kinds of output we produce are
   colored and "FX" is justified because output we produce is often
   shorter than a page).
 * The logic and data used to compute the display width needed for
   UTF-8 strings have been updated to match Unicode 7.0 better.
 * HTTP-based transports learned to better propagate the error messages from
   the webserver to the client coming over the HTTP transport.
 * The completion script for bash (in contrib/) has been updated to
   better handle aliases that define a complex sequence of commands.
 * The "core.preloadindex" configuration variable is enabled by default,
   allowing modern platforms to take advantage of their
   multiple cores.
 * "git clone" applies the "if cloning from a local disk, physically
   copy the repository using hardlinks, unless otherwise told not to with
   --no-local" optimization when the url.*.insteadOf mechanism rewrites a
   remote-repository "git clone $URL" into a
   clone from a local disk.
 * "git commit --date=<date>" option learned more
   timestamp formats, including "--date=now".
 * The `core.commentChar` configuration variable is used to specify a
   custom comment character (other than the default "#") for
   the commit message editor.  This can be set to `auto` to attempt to
   choose a different character that does not conflict with any that
   already starts a line in the message being edited, for cases like
   "git commit --amend".
 * "git format-patch" learned --signature-file=<file> to add the contents
   of a file as a signature to the mail message it produces.
 * "git grep" learned the grep.fullname configuration variable to force
   "--full-name" to be the default.  This may cause regressions for
   scripted users who do not expect this new behaviour.
 * "git imap-send" learned to ask the credential helper for auth
   material.
 * "git log" and friends now understand the value "auto" for the
   "log.decorate" configuration variable to enable the "--decorate"
   option automatically when the output is sent to tty.
 * "git merge" without an argument, even when there is an upstream
   defined for the current branch, refused to run until
   merge.defaultToUpstream is set to true.  Flip the default of that
   configuration variable to true.
 * "git mergetool" learned to drive the vimdiff3 backend.
 * mergetool.prompt used to default to 'true', always asking "do you
   really want to run the tool on this path?".  The default has been
   changed to 'false'.  However, the prompt will still appear if
   mergetool used its autodetection system to guess which tool to use.
   Users who explicitly specify or configure a tool will no longer see
   the prompt by default.
   Strictly speaking, this is a backward incompatible change and
   users need to explicitly set the variable to 'true' if they want
   to be prompted to confirm running the tool on each path.
 * "git replace" learned the "--edit" subcommand to create a
   replacement by editing an existing object.
 * "git replace" learned a "--graft" option to rewrite the parents of a
   commit.
 * "git send-email" learned "--to-cover" and "--cc-cover" options, to
   tell it to copy To: and Cc: headers found in the first input file
   when emitting later input files.
 * "git svn" learned to cope with malformed timestamps with only one
   digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted
   by some broken subversion server implementations.
 * "git tag" when editing the tag message shows the name of the tag
   being edited as a comment in the editor.
 * "git tag" learned to pay attention to "tag.sort" configuration, to
   be used as the default sort order when no --sort=<value> option
   is given.
 * A new "git verify-commit" command, to check GPG signatures in signed
   commits, in a way similar to "git verify-tag" is used to check
   signed tags, was added.
2014-08-25 07:49:08 +00:00
adam
7e964a6677 Fixes since v1.9.3
------------------

 * Commands that take pathspecs on the command line misbehaved when
   the pathspec is given as an absolute pathname (which is a
   practice not particularly encouraged) that points at a symbolic
   link in the working tree.

 * An earlier fix to the shell prompt script (in contrib/) for using
   the PROMPT_COMMAND interface did not correctly check if the extra
   code path needs to trigger, causing the branch name not to appear
   when 'promptvars' option is disabled in bash or PROMPT_SUBST is
   unset in zsh.
2014-06-02 16:32:36 +00:00
wiz
7eeb51b534 Bump for perl-5.20.0.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
2014-05-29 23:35:13 +00:00
adam
b90ff0d742 Changes 1.8.5:
Foreign interfaces, subsystems and ports.

 * The HTTP transport, when talking GSS-Negotiate, uses "100
   Continue" response to avoid having to rewind and resend a large
   payload, which may not be always doable.

 * Various bugfixes to remote-bzr and remote-hg (in contrib/).

 * The build procedure is aware of MirBSD now.

 * Various "git p4", "git svn" and "gitk" updates.


UI, Workflows & Features

 * Fetching from a shallowly-cloned repository used to be forbidden,
   primarily because the codepaths involved were not carefully vetted
   and we did not bother supporting such usage. This release attempts
   to allow object transfer out of a shallowly-cloned repository in a
   more controlled way (i.e. the receiver becomes a shallow repository
   with a truncated history).

 * Just like we give a reasonable default for "less" via the LESS
   environment variable, we now specify a reasonable default for "lv"
   via the "LV" environment variable when spawning the pager.

 * Two-level configuration variable names in "branch.*" and "remote.*"
   hierarchies, whose variables are predominantly three-level, were
   not completed by hitting a <TAB> in bash and zsh completions.

 * Fetching a 'frotz' branch with "git fetch", while a 'frotz/nitfol'
   remote-tracking branch from an earlier fetch was still there, would
   error out, primarily because the command was not told that it is
   allowed to lose any information on our side.  "git fetch --prune"
   now can be used to remove 'frotz/nitfol' to make room for fetching and
   storing the 'frotz' remote-tracking branch.

 * "diff.orderfile=<file>" configuration variable can be used to
   pretend as if the "-O<file>" option were given from the command
   line of "git diff", etc.

 * The negative pathspec syntax allows "git log -- . ':!dir'" to tell
   us "I am interested in everything but 'dir' directory".

 * "git difftool" shows how many different paths there are in total,
   and how many of them have been shown so far, to indicate progress.

 * "git push origin master" used to push our 'master' branch to update
   the 'master' branch at the 'origin' repository.  This has been
   enhanced to use the same ref mapping "git push origin" would use to
   determine what ref at the 'origin' to be updated with our 'master'.
   For example, with this configuration

   [remote "origin"]
      push = refs/heads/*:refs/review/*

   that would cause "git push origin" to push out our local branches
   to corresponding refs under refs/review/ hierarchy at 'origin',
   "git push origin master" would update 'refs/review/master' over
   there.  Alternatively, if push.default is set to 'upstream' and our
   'master' is set to integrate with 'topic' from the 'origin' branch,
   running "git push origin" while on our 'master' would update their
   'topic' branch, and running "git push origin master" while on any
   of our branches does the same.

 * "gitweb" learned to treat ref hierarchies other than refs/heads as
   if they are additional branch namespaces (e.g. refs/changes/ in
   Gerrit).

 * "git for-each-ref --format=..." learned a few formatting directives;
   e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)".

 * The command string given to "git submodule foreach" is passed
   directly to the shell, without being eval'ed.  This is a backward
   incompatible change that may break existing users.

 * "git log" and friends learned the "--exclude=<glob>" option, to
   allow people to say "list history of all branches except those that
   match this pattern" with "git log --exclude='*/*' --branches".

 * "git rev-parse --parseopt" learned a new "--stuck-long" option to
   help scripts parse options with an optional parameter.

 * The "--tags" option to "git fetch" no longer tells the command to
   fetch _only_ the tags. It instead fetches tags _in addition to_
   what are fetched by the same command line without the option.
2014-02-23 10:00:27 +00:00
obache
7c9dd77cac marked to supersede the previous package name. 2013-09-11 01:26:00 +00:00
wiz
790d800193 Remove old conflicts line that breaks git meta package. 2013-09-10 08:17:38 +00:00
wiz
1d3c97b973 Reimport scmgit-docs as git-docs-1.8.4 in devel/git-docs.
This package installs documentation for the GIT distributed version control
suite.
2013-09-09 13:55:14 +00:00