git: updated to 2.19.0
Git 2.19 Release Notes
Updates since v2.18
-------------------
UI, Workflows & Features
* "git diff" compares the index and the working tree. For paths
added with intent-to-add bit, the command shows the full contents
of them as added, but the paths themselves were not marked as new
files. They are now shown as new by default.
"git apply" learned the "--intent-to-add" option so that an
otherwise working-tree-only application of a patch will add new
paths to the index marked with the "intent-to-add" bit.
* "git grep" learned the "--column" option that gives not just the
line number but the column number of the hit.
* The "-l" option in "git branch -l" is an unfortunate short-hand for
"--create-reflog", but many users, both old and new, somehow expect
it to be something else, perhaps "--list". This step warns when "-l"
is used as a short-hand for "--create-reflog" and warns about the
future repurposing of the it when it is used.
* The userdiff pattern for .php has been updated.
* The content-transfer-encoding of the message "git send-email" sends
out by default was 8bit, which can cause trouble when there is an
overlong line to bust RFC 5322/2822 limit. A new option 'auto' to
automatically switch to quoted-printable when there is such a line
in the payload has been introduced and is made the default.
* "git checkout" and "git worktree add" learned to honor
checkout.defaultRemote when auto-vivifying a local branch out of a
remote tracking branch in a repository with multiple remotes that
have tracking branches that share the same names.
(merge 8d7b558bae ab/checkout-default-remote later to maint).
* "git grep" learned the "--only-matching" option.
* "git rebase --rebase-merges" mode now handles octopus merges as
well.
* Add a server-side knob to skip commits in exponential/fibbonacci
stride in an attempt to cover wider swath of history with a smaller
number of iterations, potentially accepting a larger packfile
transfer, instead of going back one commit a time during common
ancestor discovery during the "git fetch" transaction.
(merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint).
* A new configuration variable core.usereplacerefs has been added,
primarily to help server installations that want to ignore the
replace mechanism altogether.
* Teach "git tag -s" etc. a few configuration variables (gpg.format
that can be set to "openpgp" or "x509", and gpg.<format>.program
that is used to specify what program to use to deal with the format)
to allow x.509 certs with CMS via "gpgsm" to be used instead of
openpgp via "gnupg".
* Many more strings are prepared for l10n.
* "git p4 submit" learns to ask its own pre-submit hook if it should
continue with submitting.
* The test performed at the receiving end of "git push" to prevent
bad objects from entering repository can be customized via
receive.fsck.* configuration variables; we now have gained a
counterpart to do the same on the "git fetch" side, with
fetch.fsck.* configuration variables.
* "git pull --rebase=interactive" learned "i" as a short-hand for
"interactive".
* "git instaweb" has been adjusted to run better with newer Apache on
RedHat based distros.
* "git range-diff" is a reimplementation of "git tbdiff" that lets us
compare individual patches in two iterations of a topic.
* The sideband code learned to optionally paint selected keywords at
the beginning of incoming lines on the receiving end.
* "git branch --list" learned to take the default sort order from the
'branch.sort' configuration variable, just like "git tag --list"
pays attention to 'tag.sort'.
* "git worktree" command learned "--quiet" option to make it less
verbose.
Performance, Internal Implementation, Development Support etc.
* The bulk of "git submodule foreach" has been rewritten in C.
* The in-core "commit" object had an all-purpose "void *util" field,
which was tricky to use especially in library-ish part of the
code. All of the existing uses of the field has been migrated to a
more dedicated "commit-slab" mechanism and the field is eliminated.
* A less often used command "git show-index" has been modernized.
(merge fb3010c31f jk/show-index later to maint).
* The conversion to pass "the_repository" and then "a_repository"
throughout the object access API continues.
* Continuing with the idea to programatically enumerate various
pieces of data required for command line completion, teach the
codebase to report the list of configuration variables
subcommands care about to help complete them.
* Separate "rebase -p" codepath out of "rebase -i" implementation to
slim down the latter and make it easier to manage.
* Make refspec parsing codepath more robust.
* Some flaky tests have been fixed.
* Continuing with the idea to programmatically enumerate various
pieces of data required for command line completion, the codebase
has been taught to enumerate options prefixed with "--no-" to
negate them.
* Build and test procedure for netrc credential helper (in contrib/)
has been updated.
* Remove unused function definitions and declarations from ewah
bitmap subsystem.
* Code preparation to make "git p4" closer to be usable with Python 3.
* Tighten the API to make it harder to misuse in-tree .gitmodules
file, even though it shares the same syntax with configuration
files, to read random configuration items from it.
* "git fast-import" has been updated to avoid attempting to create
delta against a zero-byte-long string, which is pointless.
* The codebase has been updated to compile cleanly with -pedantic
option.
(merge 2b647a05d7 bb/pedantic later to maint).
* The character display width table has been updated to match the
latest Unicode standard.
(merge 570951eea2 bb/unicode-11-width later to maint).
* test-lint now looks for broken use of "VAR=VAL shell_func" in test
scripts.
* Conversion from uchar[40] to struct object_id continues.
* Recent "security fix" to pay attention to contents of ".gitmodules"
while accepting "git push" was a bit overly strict than necessary,
which has been adjusted.
* "git fsck" learns to make sure the optional commit-graph file is in
a sane state.
* "git diff --color-moved" feature has further been tweaked.
* Code restructuring and a small fix to transport protocol v2 during
fetching.
* Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
take has been tweaked.
* lookup_commit_reference() and friends have been updated to find
in-core object for a specific in-core repository instance.
* Various glitches in the heuristics of merge-recursive strategy have
been documented in new tests.
* "git fetch" learned a new option "--negotiation-tip" to limit the
set of commits it tells the other end as "have", to reduce wasted
bandwidth and cycles, which would be helpful when the receiving
repository has a lot of refs that have little to do with the
history at the remote it is fetching from.
* For a large tree, the index needs to hold many cache entries
allocated on heap. These cache entries are now allocated out of a
dedicated memory pool to amortize malloc(3) overhead.
* Tests to cover various conflicting cases have been added for
merge-recursive.
* Tests to cover conflict cases that involve submodules have been
added for merge-recursive.
* Look for broken "&&" chains that are hidden in subshell, many of
which have been found and corrected.
* The singleton commit-graph in-core instance is made per in-core
repository instance.
* "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
with -pedantic option, which may catch more problematic program
constructs and potential bugs.
* Preparatory code to later add json output for telemetry data has
been added.
* Update the way we use Coccinelle to find out-of-style code that
need to be modernised.
* It is too easy to misuse system API functions such as strcat();
these selected functions are now forbidden in this codebase and
will cause a compilation failure.
* Add a script (in contrib/) to help users of VSCode work better with
our codebase.
* The Travis CI scripts were taught to ship back the test data from
failed tests.
(merge aea8879a6a sg/travis-retrieve-trash-upon-failure later to maint).
* The parse-options machinery learned to refrain from enclosing
placeholder string inside a "<bra" and "ket>" pair automatically
without PARSE_OPT_LITERAL_ARGHELP. Existing help text for option
arguments that are not formatted correctly have been identified and
fixed.
(merge 5f0df44cd7 rs/parse-opt-lithelp later to maint).
* Noiseword "extern" has been removed from function decls in the
header files.
* A few atoms like %(objecttype) and %(objectsize) in the format
specifier of "for-each-ref --format=<format>" can be filled without
getting the full contents of the object, but just with the object
header. These cases have been optimized by calling
oid_object_info() API (instead of reading and inspecting the data).
* The end result of documentation update has been made to be
inspected more easily to help developers.
* The API to iterate over all objects learned to optionally list
objects in the order they appear in packfiles, which helps locality
of access if the caller accesses these objects while as objects are
enumerated.
* Improve built-in facility to catch broken &&-chain in the tests.
* The more library-ish parts of the codebase learned to work on the
in-core index-state instance that is passed in by their callers,
instead of always working on the singleton "the_index" instance.
* A test prerequisite defined by various test scripts with slightly
different semantics has been consolidated into a single copy and
made into a lazily defined one.
(merge 6ec633059a wc/make-funnynames-shared-lazy-prereq later to maint).
* After a partial clone, repeated fetches from promisor remote would
have accumulated many packfiles marked with .promisor bit without
getting them coalesced into fewer packfiles, hurting performance.
"git repack" now learned to repack them.
* Partially revert the support for multiple hash functions to regain
hash comparison performance; we'd think of a way to do this better
in the next cycle.
* "git help --config" (which is used in command line completion)
missed the configuration variables not described in the main
config.txt file but are described in another file that is included
by it, which has been corrected.
* The test linter code has learned that the end of here-doc mark
"EOF" can be quoted in a double-quote pair, not just in a
single-quote pair.
2018-09-13 12:56:42 +02:00
|
|
|
# $NetBSD: Makefile,v 1.37 2018/09/13 10:56:42 adam Exp $
|
2007-03-22 18:15:36 +01:00
|
|
|
|
2014-05-10 13:43:30 +02:00
|
|
|
.include "../../devel/git/Makefile.common"
|
2012-02-29 22:19:02 +01:00
|
|
|
|
2007-03-22 18:15:36 +01:00
|
|
|
PKGNAME= ${DISTNAME:S/git/gitweb/}
|
|
|
|
CATEGORIES= www
|
|
|
|
|
|
|
|
COMMENT= Web interface for GIT repositories
|
|
|
|
|
2018-01-01 11:23:04 +01:00
|
|
|
#DEPENDS+= apache-[0-9]*:../../www/apache24
|
2013-09-09 16:07:58 +02:00
|
|
|
DEPENDS+= git-base>=${GIT_VERSION}:../../devel/git-base
|
2015-07-12 20:56:06 +02:00
|
|
|
#DEPENDS+= {perl>=5.15.8,p5-Time-HiRes>=1.9725}:../../time/p5-Time-HiRes
|
2015-07-19 18:54:11 +02:00
|
|
|
DEPENDS+= p5-CGI-[0-9]*:../../www/p5-CGI
|
2007-03-22 18:15:36 +01:00
|
|
|
|
2014-05-10 13:43:30 +02:00
|
|
|
USE_TOOLS+= perl:run
|
2007-03-22 18:15:36 +01:00
|
|
|
|
2012-02-29 22:19:02 +01:00
|
|
|
BUILD_DIRS= gitweb
|
2015-08-30 08:56:19 +02:00
|
|
|
BUILD_TARGET= gitweb.cgi static/gitweb.js
|
2007-03-22 18:15:36 +01:00
|
|
|
MAKE_FLAGS= prefix=${PREFIX}
|
|
|
|
MAKE_FLAGS+= GITWEB_FAVICON=/gitweb/git-favicon.png
|
|
|
|
MAKE_FLAGS+= GITWEB_CONFIG=${GITWEB_CONFIG}
|
|
|
|
MAKE_FLAGS+= GITWEB_CSS=/gitweb/gitweb.css
|
2007-03-22 18:34:48 +01:00
|
|
|
MAKE_FLAGS+= GITWEB_HOMETEXT=${GITWEB_HTDOCS}/indextext.html
|
2007-03-22 18:15:36 +01:00
|
|
|
MAKE_FLAGS+= GITWEB_LOGO=/gitweb/git-logo.png
|
2015-08-30 08:56:19 +02:00
|
|
|
MAKE_FLAGS+= GITWEB_JS=/gitweb/gitweb.js
|
2007-03-22 18:15:36 +01:00
|
|
|
MAKE_FLAGS+= PERL_PATH=${PERL5:Q}
|
|
|
|
|
|
|
|
GITWEB_CONFIG= ${PKG_SYSCONFDIR}/gitweb.conf
|
|
|
|
GITWEB_CGIBIN= ${PREFIX}/libexec/cgi-bin
|
2010-12-05 00:50:33 +01:00
|
|
|
# Apache wants files in ${PREFIX}/share/httpd/htdocs/gitweb
|
2010-03-05 17:12:07 +01:00
|
|
|
GITWEB_HTDOCS= ${PREFIX}/share/examples/gitweb/htdocs
|
2007-03-22 18:15:36 +01:00
|
|
|
GITWEB_EGDIR= ${PREFIX}/share/examples/gitweb
|
|
|
|
|
|
|
|
CONF_FILES= ${GITWEB_EGDIR}/gitweb.conf ${PKG_SYSCONFDIR}/gitweb.conf
|
|
|
|
MESSAGE_SUBST+= CONFFILE=${PKG_SYSCONFDIR}/gitweb.conf
|
|
|
|
|
2014-05-10 13:43:30 +02:00
|
|
|
INSTALLATION_DIRS= libexec/cgi-bin share/doc/gitweb \
|
2008-06-20 03:09:05 +02:00
|
|
|
${GITWEB_EGDIR} ${GITWEB_HTDOCS}
|
2007-03-22 18:15:36 +01:00
|
|
|
|
|
|
|
do-install:
|
2008-06-20 03:09:05 +02:00
|
|
|
${INSTALL_SCRIPT} ${WRKSRC}/gitweb/gitweb.cgi ${DESTDIR}${GITWEB_CGIBIN}
|
2015-08-30 08:56:19 +02:00
|
|
|
.for f in git-favicon.png git-logo.png gitweb.css gitweb.js
|
Update to 1.7.3.4. Most importantly:
commit 3017ed62f47ce14a959e2d315c434d4980cf4243
Author: Jakub Narebski <jnareb@gmail.com>
Date: Wed Dec 15 00:34:01 2010 +0100
gitweb: Introduce esc_attr to escape attributes of HTML elements
It is needed only to escape attributes of handcrafted HTML elements,
and not those generated using CGI.pm subroutines / methods for HTML
generation.
While at it, add esc_url and esc_html where needed, and prefer to use
CGI.pm HTML generating methods than handcrafted HTML code. Most of
those are probably unnecessary (could be exploited only by person with
write access to gitweb config, or at least access to the repository).
This fixes CVE-2010-3906
Reported-by: Emanuele Gentili <e.gentili@tigersecurity.it>
Helped-by: John 'Warthog9' Hawley <warthog9@kernel.org>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
and lesser changes:
3017ed6 gitweb: Introduce esc_attr to escape attributes of HTML elements
d48b284 perl: bump the required Perl version to 5.8 from 5.6.[21]
d8a9480 gitweb: Don't die_error in git_tag after already printing headers
22e5e58 Typos in code comments, an error message, documentation
497d9c3 gitweb: clarify search results page when no matching commit found
0b45010 gitweb: Fix typo in run() subroutine
7f425db gitweb: allow configurations that change with each request
61bf126 gitweb: move highlight config out of guess_file_syntax()
109988f gitweb: fix esc_url
869d588 gitweb: Move evaluate_gitweb_config out of run_request
7064994 gitweb/Makefile: fix typo in gitweb.min.css rule
5ed2ec1 gitweb: Return or exit after done serving request
ad709ea gitweb: Fix typo in hash key name in %opts in git_header_html
45aa989 gitweb: Run in FastCGI mode if gitweb script has .fcgi extension
18d0532 gitweb: Move static files into seperate subdirectory
04794fd gitweb: Use @diff_opts while using format-patch
a0446e7 gitweb: Add support for FastCGI, using CGI::Fast
c2394fe gitweb: Put all per-connection code in run() subroutine
592ea41 gitweb: Refactor syntax highlighting support
b331fe5 gitweb: Syntax highlighting support
152d943 gitweb: Create install target for gitweb in Makefile
8515392 gitweb: Improve installation instructions in gitweb/INSTALL
ee1d8ee gitweb: Silence 'Variable VAR may be unavailable' warnings
efb2d0c gitweb: Move generating page title to separate subroutine
7a59745 gitweb: Add custom error handler using die_error
c42b00c gitweb: Use nonlocal jump instead of 'exit' in die_error
377bee3 gitweb: href(..., -path_info => 0|1)
8de096b gitweb: simplify gitweb.min.* generation and clean-up rules
e391859 gitweb: update INSTALL to use shorter make target
a8ab675 gitweb: add documentation to INSTALL regarding gitweb.js
bb4bbf7 Gitweb: add autoconfigure support for minifiers
0e6ce21 Gitweb: add support for minifying gitweb.css
890a13a Sync with 1.7.0.4
7a49c25 gitweb: git_get_project_config requires only $git_dir, not also $projec
9be3614 gitweb: Fix project-specific feature override behavior
964ad92 gitweb multiple project roots documentation
1df4876 gitweb: Protect escaping functions against calling on undef
453541f gitweb: esc_html (short) error message in die_error
e6e592d gitweb: Die if there are parsing errors in config file
57017b3 gitweb: Simplify (and fix) chop_str
aa14013 gitweb: Add optional extra parameter to die_error, for extended explanaion
1ee4b4e gitweb: add a "string" variant of print_sort_th
0cf207f gitweb: add a "string" variant of print_local_time
24d4afc gitweb: Check that $site_header etc. are defined before using them
62331ef gitweb: Makefile improvements
b62a1a9 gitweb: Load checking
b2c2e4c gitweb.js: Workaround for IE8 bug
2010-12-17 02:19:17 +01:00
|
|
|
${INSTALL_DATA} ${WRKSRC}/gitweb/static/${f} ${DESTDIR}${GITWEB_HTDOCS}
|
2007-03-22 18:15:36 +01:00
|
|
|
.endfor
|
|
|
|
${INSTALL_DATA} ${WRKSRC}/gitweb/README \
|
2008-06-20 03:09:05 +02:00
|
|
|
${DESTDIR}${PREFIX}/share/doc/gitweb
|
|
|
|
${INSTALL_DATA} ${FILESDIR}/gitweb.conf ${DESTDIR}${GITWEB_EGDIR}
|
2007-03-22 18:15:36 +01:00
|
|
|
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|