ee7f6fce67
Git 2.17: UI, Workflows & Features * "diff" family of commands learned "--find-object=<object-id>" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=<address>" option. * Funcname pattern used for C# now recognizes "async" keyword. * In a way similar to how "git tag" learned to honor the pager setting only in the list mode, "git config" learned to ignore the pager setting when it is used for setting values (i.e. when the purpose of the operation is not to "show"). Performance, Internal Implementation, Development Support etc. * More perf tests for threaded grep * "perf" test output can be sent to codespeed server. * The build procedure for perl/ part has been greatly simplified by weaning ourselves off of MakeMaker. * Perl 5.8 or greater has been required since Git 1.7.4 released in 2010, but we continued to assume some core modules may not exist and used a conditional "eval { require <<module>> }"; we no longer do this. Some platforms (Fedora/RedHat/CentOS, for example) ship Perl without all core modules by default (e.g. Digest::MD5, File::Temp, File::Spec, Net::Domain, Net::SMTP). Users on such platforms may need to install these additional modules. * As a convenience, we install copies of Perl modules we require which are not part of the core Perl distribution (e.g. Error and Mail::Address). Users and packagers whose operating system provides these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the bundled modules. * In preparation for implementing narrow/partial clone, the machinery for checking object connectivity used by gc and fsck has been taught that a missing object is OK when it is referenced by a packfile specially marked as coming from trusted repository that promises to make them available on-demand and lazily. * The machinery to clone & fetch, which in turn involves packing and unpacking objects, has been told how to omit certain objects using the filtering mechanism introduced by another topic. It now knows to mark the resulting pack as a promisor pack to tolerate missing objects, laying foundation for "narrow" clones. * The first step to getting rid of mru API and using the doubly-linked list API directly instead. * Retire mru API as it does not give enough abstraction over underlying list API to be worth it. * Rewrite two more "git submodule" subcommands in C. * The tracing machinery learned to report tweaking of environment variables as well. * Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str) * Prevent "clang-format" from breaking line after function return type. * The sequencer infrastructure is shared across "git cherry-pick", "git rebase -i", etc., and has always spawned "git commit" when it needs to create a commit. It has been taught to do so internally, when able, by reusing the codepath "git commit" itself uses, which gives performance boost for a few tens of percents in some sample scenarios. * Push the submodule version of collision-detecting SHA-1 hash implementation a bit harder on builders. * Avoid mmapping small files while using packed refs (especially ones with zero size, which would cause later munmap() to fail). * Conversion from uchar[20] to struct object_id continues. * More tests for wildmatch functions. * The code to binary search starting from a fan-out table (which is how the packfile is indexed with object names) has been refactored into a reusable helper. * We now avoid using identifiers that clash with C++ keywords. Even though it is not a goal to compile Git with C++ compilers, changes like this help use of code analysis tools that targets C++ on our codebase. * The executable is now built in 'script' phase in Travis CI integration, to follow the established practice, rather than during 'before_script' phase. This allows the CI categorize the failures better ('failed' is project's fault, 'errored' is build environment's). * Writing out the index file when the only thing that changed in it is the untracked cache information is often wasteful, and this has been optimized out. * Various pieces of Perl code we have have been cleaned up. * Internal API clean-up to allow write_locked_index() optionally skip writing the in-core index when it is not modified.
36 lines
856 B
Makefile
36 lines
856 B
Makefile
# $NetBSD: Makefile,v 1.3 2018/04/11 19:39:35 adam Exp $
|
|
|
|
PKGNAME= git-gitk-${GIT_VERSION}
|
|
COMMENT= GIT Tree History Storage Tool (gitk)
|
|
|
|
CONFLICTS+= git-base<1.7.12nb1
|
|
CONFLICTS+= scmgit-gitk-[0-9]*
|
|
SUPERSEDES+= scmgit-gitk-[0-9]*
|
|
|
|
DEPENDS+= git-base>=1.7.12nb1:../../devel/git-base
|
|
|
|
BUILD_DIRS= git-gui gitk-git
|
|
INSTALL_DIRS= ${BUILD_DIRS}
|
|
MAKE_ENV+= prefix=${PREFIX}
|
|
|
|
USE_TOOLS+= wish:run
|
|
CONFIGURE_ARGS+= --with-tcltk=${WISH:Q}
|
|
|
|
INSTALLATION_DIRS+= bin
|
|
PLIST_VARS+= macosx
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
.if ${OPSYS} == "Darwin" && exists(/System/Library/Frameworks/Tk.framework)
|
|
. if exists(/System/Library/Frameworks/Tk.framework/Resources/Wish.app)
|
|
WISH_APP=Wish
|
|
. else
|
|
WISH_APP=Wish Shell
|
|
. endif
|
|
PLIST_SUBST+= WISH_APP=${WISH_APP:Q}
|
|
PLIST.macosx= yes
|
|
.endif
|
|
|
|
.include "../../devel/git/Makefile.common"
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|