Link [ pkgsrc | NetBSD | pkgsrc git mirror | PR fulltext-search | netbsd commit viewer ]


   
        usage: [branch:branch] [user:user] [path[@revision]] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN pkgtools/pkg)




switch to index mode

recent branches: MAIN (1m)  pkgsrc-2024Q1 (8d)  pkgsrc-2023Q4 (55d)  pkgsrc-2023Q2 (88d)  pkgsrc-2023Q3 (167d) 

2024-05-26 12:28:51 UTC Now

2018-06-22 08:57:17 UTC MAIN commitmail json YAML

git: updated to 2.18.0

2.18.0:

UI, Workflows & Features

* Rename detection logic that is used in "merge" and "cherry-pick" has
  learned to guess when all of x/a, x/b and x/c have moved to z/a,
  z/b and z/c, it is likely that x/d added in the meantime would also
  want to move to z/d by taking the hint that the entire directory
  'x' moved to 'z'.  A bug causing dirty files involved in a rename
  to be overwritten during merge has also been fixed as part of this
  work.  Incidentally, this also avoids updating a file in the
  working tree after a (non-trivial) merge whose result matches what
  our side originally had.

* "git filter-branch" learned to use a different exit code to allow
  the callers to tell the case where there was no new commits to
  rewrite from other error cases.

* When built with more recent cURL, GIT_SSL_VERSION can now specify
  "tlsv1.3" as its value.

* "git gui" learned that "~/.ssh/id_ecdsa.pub" and
  "~/.ssh/id_ed25519.pub" are also possible SSH key files.
  (merge 2e2f0288ef bb/git-gui-ssh-key-files later to maint).

* "git gui" performs commit upon CTRL/CMD+ENTER but the
  CTRL/CMD+KP_ENTER (i.e. enter key on the numpad) did not have the
  same key binding.  It now does.
  (merge 28a1d94a06 bp/git-gui-bind-kp-enter later to maint).

* "git gui" has been taught to work with old versions of tk (like
  8.5.7) that do not support "ttk::style theme use" as a way to query
  the current theme.
  (merge 4891961105 cb/git-gui-ttk-style later to maint).

* "git rebase" has learned to honor "--signoff" option when using
  backends other than "am" (but not "--preserve-merges").

* "git branch --list" during an interrupted "rebase -i" now lets
  users distinguish the case where a detached HEAD is being rebased
  and a normal branch is being rebased.

* "git mergetools" learned talking to guiffy.

* The scripts in contrib/emacs/ have outlived their usefulness and
  have been replaced with a stub that errors out and tells the user
  there are replacements.

* The new "working-tree-encoding" attribute can ask Git to convert the
  contents to the specified encoding when checking out to the working
  tree (and the other way around when checking in).

* The "git config" command uses separate options e.g. "--int",
  "--bool", etc. to specify what type the caller wants the value to
  be interpreted as.  A new "--type=<typename>" option has been
  introduced, which would make it cleaner to define new types.

* "git config --get" learned the "--default" option, to help the
  calling script.  Building on top of the above changes, the
  "git config" learns "--type=color" type.  Taken together, you can
  do things like "git config --get foo.color --default blue" and get
  the ANSI color sequence for the color given to foo.color variable,
  or "blue" if the variable does not exist.

* "git ls-remote" learned an option to allow sorting its output based
  on the refnames being shown.

* The command line completion (in contrib/) has been taught that "git
  stash save" has been deprecated ("git stash push" is the preferred
  spelling in the new world) and does not offer it as a possible
  completion candidate when "git stash push" can be.

* "git gc --prune=nonsense" spent long time repacking and then
  silently failed when underlying "git prune --expire=nonsense"
  failed to parse its command line.  This has been corrected.

* Error messages from "git push" can be painted for more visibility.

* "git http-fetch" (deprecated) had an optional and experimental
  "feature" to fetch only commits and/or trees, which nobody used.
  This has been removed.

* The functionality of "$GIT_DIR/info/grafts" has been superseded by
  the "refs/replace/" mechanism for some time now, but the internal
  code had support for it in many places, which has been cleaned up
  in order to drop support of the "grafts" mechanism.

* "git worktree add" learned to check out an existing branch.

* "git --no-pager cmd" did not have short-and-sweet single letter
  option. Now it does as "-P".
  (merge 7213c28818 js/no-pager-shorthand later to maint).

* "git rebase" learned "--rebase-merges" to transplant the whole
  topology of commit graph elsewhere.

* "git status" learned to pay attention to UI related diff
  configuration variables such as diff.renames.

* The command line completion mechanism (in contrib/) learned to load
  custom completion file for "git $command" where $command is a
  custom "git-$command" that the end user has on the $PATH when using
  newer version of bash-completion.

* "git send-email" can sometimes offer confirmation dialog "Send this
  email?" with choices 'Yes', 'No', 'Quit', and 'All'.  A new action
  'Edit' has been added to this dialog's choice.

* With merge.renames configuration set to false, the recursive merge
  strategy can be told not to spend cycles trying to find renamed
  paths and merge them accordingly.

* "git status" learned to honor a new status.renames configuration to
  skip rename detection, which could be useful for those who want to
  do so without disabling the default rename detection done by the
  "git diff" command.

* Command line completion (in contrib/) learned to complete pathnames
  for various commands better.

* "git blame" learns to unhighlight uninteresting metadata from the
  originating commit on lines that are the same as the previous one,
  and also paint lines in different colors depending on the age of
  the commit.

* Transfer protocol v2 learned to support the partial clone.

* When a short hexadecimal string is used to name an object but there
  are multiple objects that share the string as the prefix of their
  names, the code lists these ambiguous candidates in a help message.
  These object names are now sorted according to their types for
  easier eyeballing.

* "git fetch $there $refspec" that talks over protocol v2 can take
  advantage of server-side ref filtering; the code has been extended
  so that this mechanism triggers also when fetching with configured
  refspec.

* Our HTTP client code used to advertise that we accept gzip encoding
  from the other side; instead, just let cURL library to advertise
  and negotiate the best one.

* "git p4" learned to "unshelve" shelved commit from P4.
  (merge 123f631761 ld/p4-unshelve later to maint).

(adam)