svn commit: r492487 - in head/devel: . git-absorb
Tobias C. Berner
tcberner at FreeBSD.org
Sat Feb 9 09:20:28 UTC 2019
Author: tcberner
Date: Sat Feb 9 09:20:26 2019
New Revision: 492487
URL: https://svnweb.freebsd.org/changeset/ports/492487
Log:
New port: devel/git-absorb: Git command for automating fixup/autosquash commits
You have a feature branch with a few commits. Your teammate reviewed the branch
and pointed out a few bugs. You have fixes for the bugs, but you don't want to
shove them all into an opaque commit that says fixes, because you believe in
atomic commits. Instead of manually finding commit SHAs for git commit --fixup,
or running a manual interactive rebase, do this:
> git add $FILES_YOU_FIXED
> git absorb
> git rebase -i --autosquash master
git absorb will automatically identify which commits are safe to modify, and
which indexed changes belong to each of those commits. It will then write
fixup! commits for each of those changes. You can check its output manually if
you don't trust it, and then fold the fixups into your feature branch with
git's built-in autosquash functionality.
PR: 235436
Submitted by: Greg V <greg at unrelenting.technology>
Added:
head/devel/git-absorb/
head/devel/git-absorb/Makefile (contents, props changed)
head/devel/git-absorb/distinfo (contents, props changed)
head/devel/git-absorb/pkg-descr (contents, props changed)
Modified:
head/devel/Makefile
Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile Sat Feb 9 09:00:45 2019 (r492486)
+++ head/devel/Makefile Sat Feb 9 09:20:26 2019 (r492487)
@@ -771,6 +771,7 @@
SUBDIR += gindent
SUBDIR += gio-sharp
SUBDIR += git
+ SUBDIR += git-absorb
SUBDIR += git-bzr-ng
SUBDIR += git-cinnabar
SUBDIR += git-codereview
Added: head/devel/git-absorb/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/git-absorb/Makefile Sat Feb 9 09:20:26 2019 (r492487)
@@ -0,0 +1,87 @@
+# $FreeBSD$
+
+PORTNAME= git-absorb
+DISTVERSION= 0.3.0
+CATEGORIES= devel
+
+MAINTAINER= greg at unrelenting.technology
+COMMENT= Git command for automating fixup/autosquash commits
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+USES= cargo
+USE_GITHUB= yes
+GH_ACCOUNT= tummychow
+
+CARGO_CRATES= ansi_term-0.10.2 \
+ atty-0.2.6 \
+ backtrace-0.3.5 \
+ backtrace-sys-0.1.16 \
+ bitflags-1.0.1 \
+ cc-1.0.25 \
+ cfg-if-0.1.2 \
+ chrono-0.4.0 \
+ clap-2.30.0 \
+ failure-0.1.1 \
+ failure_derive-0.1.1 \
+ fuchsia-zircon-0.3.3 \
+ fuchsia-zircon-sys-0.3.3 \
+ git2-0.7.5 \
+ idna-0.1.4 \
+ isatty-0.1.6 \
+ kernel32-sys-0.2.2 \
+ lazy_static-1.0.0 \
+ libc-0.2.43 \
+ libgit2-sys-0.7.10 \
+ libz-sys-1.0.25 \
+ log-0.4.6 \
+ matches-0.1.6 \
+ memchr-2.0.1 \
+ num-0.1.42 \
+ num-integer-0.1.36 \
+ num-iter-0.1.35 \
+ num-traits-0.2.0 \
+ percent-encoding-1.0.1 \
+ pkg-config-0.3.9 \
+ quote-0.3.15 \
+ rand-0.4.2 \
+ redox_syscall-0.1.37 \
+ redox_termios-0.1.1 \
+ remove_dir_all-0.3.0 \
+ rustc-demangle-0.1.5 \
+ slog-2.1.1 \
+ slog-async-2.2.0 \
+ slog-term-2.3.0 \
+ strsim-0.7.0 \
+ syn-0.11.11 \
+ synom-0.11.3 \
+ synstructure-0.6.1 \
+ take_mut-0.2.0 \
+ tempdir-0.3.6 \
+ term-0.4.6 \
+ termion-1.5.1 \
+ textwrap-0.9.0 \
+ thread_local-0.3.5 \
+ time-0.1.39 \
+ unicode-bidi-0.3.4 \
+ unicode-normalization-0.1.5 \
+ unicode-width-0.1.4 \
+ unicode-xid-0.0.4 \
+ unreachable-1.0.0 \
+ url-1.6.0 \
+ vcpkg-0.2.2 \
+ vec_map-0.8.0 \
+ void-1.0.2 \
+ winapi-0.2.8 \
+ winapi-0.3.4 \
+ winapi-build-0.1.1 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-x86_64-pc-windows-gnu-0.4.0
+
+PLIST_FILES= bin/git-absorb
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/git-absorb
+
+.include <bsd.port.mk>
Added: head/devel/git-absorb/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/git-absorb/distinfo Sat Feb 9 09:20:26 2019 (r492487)
@@ -0,0 +1,131 @@
+TIMESTAMP = 1548801687
+SHA256 (rust/crates/ansi_term-0.10.2.tar.gz) = 6b3568b48b7cefa6b8ce125f9bb4989e52fbcc29ebea88df04cc7c5f12f70455
+SIZE (rust/crates/ansi_term-0.10.2.tar.gz) = 16642
+SHA256 (rust/crates/atty-0.2.6.tar.gz) = 8352656fd42c30a0c3c89d26dea01e3b77c0ab2af18230835c15e2e13cd51859
+SIZE (rust/crates/atty-0.2.6.tar.gz) = 5617
+SHA256 (rust/crates/backtrace-0.3.5.tar.gz) = ebbbf59b1c43eefa8c3ede390fcc36820b4999f7914104015be25025e0d62af2
+SIZE (rust/crates/backtrace-0.3.5.tar.gz) = 27636
+SHA256 (rust/crates/backtrace-sys-0.1.16.tar.gz) = 44585761d6161b0f57afc49482ab6bd067e4edef48c12a152c237eb0203f7661
+SIZE (rust/crates/backtrace-sys-0.1.16.tar.gz) = 283418
+SHA256 (rust/crates/bitflags-1.0.1.tar.gz) = b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf
+SIZE (rust/crates/bitflags-1.0.1.tar.gz) = 13451
+SHA256 (rust/crates/cc-1.0.25.tar.gz) = f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16
+SIZE (rust/crates/cc-1.0.25.tar.gz) = 43191
+SHA256 (rust/crates/cfg-if-0.1.2.tar.gz) = d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de
+SIZE (rust/crates/cfg-if-0.1.2.tar.gz) = 6668
+SHA256 (rust/crates/chrono-0.4.0.tar.gz) = 7c20ebe0b2b08b0aeddba49c609fe7957ba2e33449882cb186a180bc60682fa9
+SIZE (rust/crates/chrono-0.4.0.tar.gz) = 118850
+SHA256 (rust/crates/clap-2.30.0.tar.gz) = 1c07b9257a00f3fc93b7f3c417fc15607ec7a56823bc2c37ec744e266387de5b
+SIZE (rust/crates/clap-2.30.0.tar.gz) = 190562
+SHA256 (rust/crates/failure-0.1.1.tar.gz) = 934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82
+SIZE (rust/crates/failure-0.1.1.tar.gz) = 26782
+SHA256 (rust/crates/failure_derive-0.1.1.tar.gz) = c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b
+SIZE (rust/crates/failure_derive-0.1.1.tar.gz) = 9312
+SHA256 (rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82
+SIZE (rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 22565
+SHA256 (rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7
+SIZE (rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 7191
+SHA256 (rust/crates/git2-0.7.5.tar.gz) = 591f8be1674b421644b6c030969520bc3fa12114d2eb467471982ed3e9584e71
+SIZE (rust/crates/git2-0.7.5.tar.gz) = 145895
+SHA256 (rust/crates/idna-0.1.4.tar.gz) = 014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d
+SIZE (rust/crates/idna-0.1.4.tar.gz) = 289112
+SHA256 (rust/crates/isatty-0.1.6.tar.gz) = 8f2a233726c7bb76995cec749d59582e5664823b7245d4970354408f1d79a7a2
+SIZE (rust/crates/isatty-0.1.6.tar.gz) = 7752
+SHA256 (rust/crates/kernel32-sys-0.2.2.tar.gz) = 7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d
+SIZE (rust/crates/kernel32-sys-0.2.2.tar.gz) = 24537
+SHA256 (rust/crates/lazy_static-1.0.0.tar.gz) = c8f31047daa365f19be14b47c29df4f7c3b581832407daabe6ae77397619237d
+SIZE (rust/crates/lazy_static-1.0.0.tar.gz) = 12611
+SHA256 (rust/crates/libc-0.2.43.tar.gz) = 76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d
+SIZE (rust/crates/libc-0.2.43.tar.gz) = 353810
+SHA256 (rust/crates/libgit2-sys-0.7.10.tar.gz) = 4916b5addc78ec36cc309acfcdf0b9f9d97ab7b84083118b248709c5b7029356
+SIZE (rust/crates/libgit2-sys-0.7.10.tar.gz) = 1176435
+SHA256 (rust/crates/libz-sys-1.0.25.tar.gz) = 2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe
+SIZE (rust/crates/libz-sys-1.0.25.tar.gz) = 650151
+SHA256 (rust/crates/log-0.4.6.tar.gz) = c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6
+SIZE (rust/crates/log-0.4.6.tar.gz) = 22303
+SHA256 (rust/crates/matches-0.1.6.tar.gz) = 100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376
+SIZE (rust/crates/matches-0.1.6.tar.gz) = 1916
+SHA256 (rust/crates/memchr-2.0.1.tar.gz) = 796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d
+SIZE (rust/crates/memchr-2.0.1.tar.gz) = 9858
+SHA256 (rust/crates/num-0.1.42.tar.gz) = 4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e
+SIZE (rust/crates/num-0.1.42.tar.gz) = 8323
+SHA256 (rust/crates/num-integer-0.1.36.tar.gz) = f8d26da319fb45674985c78f1d1caf99aa4941f785d384a2ae36d0740bc3e2fe
+SIZE (rust/crates/num-integer-0.1.36.tar.gz) = 12168
+SHA256 (rust/crates/num-iter-0.1.35.tar.gz) = 4b226df12c5a59b63569dd57fafb926d91b385dfce33d8074a412411b689d593
+SIZE (rust/crates/num-iter-0.1.35.tar.gz) = 9013
+SHA256 (rust/crates/num-traits-0.2.0.tar.gz) = e7de20f146db9d920c45ee8ed8f71681fd9ade71909b48c3acbd766aa504cf10
+SIZE (rust/crates/num-traits-0.2.0.tar.gz) = 29853
+SHA256 (rust/crates/percent-encoding-1.0.1.tar.gz) = 31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831
+SIZE (rust/crates/percent-encoding-1.0.1.tar.gz) = 10057
+SHA256 (rust/crates/pkg-config-0.3.9.tar.gz) = 3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903
+SIZE (rust/crates/pkg-config-0.3.9.tar.gz) = 11055
+SHA256 (rust/crates/quote-0.3.15.tar.gz) = 7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a
+SIZE (rust/crates/quote-0.3.15.tar.gz) = 12041
+SHA256 (rust/crates/rand-0.4.2.tar.gz) = eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5
+SIZE (rust/crates/rand-0.4.2.tar.gz) = 76170
+SHA256 (rust/crates/redox_syscall-0.1.37.tar.gz) = 0d92eecebad22b767915e4d529f89f28ee96dbbf5a4810d2b844373f136417fd
+SIZE (rust/crates/redox_syscall-0.1.37.tar.gz) = 13980
+SHA256 (rust/crates/redox_termios-0.1.1.tar.gz) = 7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76
+SIZE (rust/crates/redox_termios-0.1.1.tar.gz) = 3227
+SHA256 (rust/crates/remove_dir_all-0.3.0.tar.gz) = b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5
+SIZE (rust/crates/remove_dir_all-0.3.0.tar.gz) = 8579
+SHA256 (rust/crates/rustc-demangle-0.1.5.tar.gz) = aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e
+SIZE (rust/crates/rustc-demangle-0.1.5.tar.gz) = 10099
+SHA256 (rust/crates/slog-2.1.1.tar.gz) = 0a6b13b17f4225771f7f15cece704a4e68d3a5f31278ed26367f497133398a18
+SIZE (rust/crates/slog-2.1.1.tar.gz) = 38752
+SHA256 (rust/crates/slog-async-2.2.0.tar.gz) = 5e319a30c08b004618d5f7ca2f2b1dad7b4623ba7fcb1a12846fc3b01e9eaa10
+SIZE (rust/crates/slog-async-2.2.0.tar.gz) = 12956
+SHA256 (rust/crates/slog-term-2.3.0.tar.gz) = 5bb5d9360b2b279b326824b3b4ca2402ead8a8138f0e5ec1900605c861bb6671
+SIZE (rust/crates/slog-term-2.3.0.tar.gz) = 17179
+SHA256 (rust/crates/strsim-0.7.0.tar.gz) = bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550
+SIZE (rust/crates/strsim-0.7.0.tar.gz) = 8435
+SHA256 (rust/crates/syn-0.11.11.tar.gz) = d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad
+SIZE (rust/crates/syn-0.11.11.tar.gz) = 63309
+SHA256 (rust/crates/synom-0.11.3.tar.gz) = a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6
+SIZE (rust/crates/synom-0.11.3.tar.gz) = 17120
+SHA256 (rust/crates/synstructure-0.6.1.tar.gz) = 3a761d12e6d8dcb4dcf952a7a89b475e3a9d69e4a69307e01a470977642914bd
+SIZE (rust/crates/synstructure-0.6.1.tar.gz) = 11257
+SHA256 (rust/crates/take_mut-0.2.0.tar.gz) = 50b910a1174df4aeb5738e8a0e7253883cf7801de40d094175a5a557e487f4c5
+SIZE (rust/crates/take_mut-0.2.0.tar.gz) = 4246
+SHA256 (rust/crates/tempdir-0.3.6.tar.gz) = f73eebdb68c14bcb24aef74ea96079830e7fa7b31a6106e42ea7ee887c1e134e
+SIZE (rust/crates/tempdir-0.3.6.tar.gz) = 11368
+SHA256 (rust/crates/term-0.4.6.tar.gz) = fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1
+SIZE (rust/crates/term-0.4.6.tar.gz) = 38250
+SHA256 (rust/crates/termion-1.5.1.tar.gz) = 689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096
+SIZE (rust/crates/termion-1.5.1.tar.gz) = 20659
+SHA256 (rust/crates/textwrap-0.9.0.tar.gz) = c0b59b6b4b44d867f1370ef1bd91bfb262bf07bf0ae65c202ea2fbc16153b693
+SIZE (rust/crates/textwrap-0.9.0.tar.gz) = 15795
+SHA256 (rust/crates/thread_local-0.3.5.tar.gz) = 279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963
+SIZE (rust/crates/thread_local-0.3.5.tar.gz) = 11794
+SHA256 (rust/crates/time-0.1.39.tar.gz) = a15375f1df02096fb3317256ce2cee6a1f42fc84ea5ad5fc8c421cfe40c73098
+SIZE (rust/crates/time-0.1.39.tar.gz) = 29295
+SHA256 (rust/crates/unicode-bidi-0.3.4.tar.gz) = 49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5
+SIZE (rust/crates/unicode-bidi-0.3.4.tar.gz) = 32228
+SHA256 (rust/crates/unicode-normalization-0.1.5.tar.gz) = 51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f
+SIZE (rust/crates/unicode-normalization-0.1.5.tar.gz) = 290328
+SHA256 (rust/crates/unicode-width-0.1.4.tar.gz) = bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f
+SIZE (rust/crates/unicode-width-0.1.4.tar.gz) = 15283
+SHA256 (rust/crates/unicode-xid-0.0.4.tar.gz) = 8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc
+SIZE (rust/crates/unicode-xid-0.0.4.tar.gz) = 16034
+SHA256 (rust/crates/unreachable-1.0.0.tar.gz) = 382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56
+SIZE (rust/crates/unreachable-1.0.0.tar.gz) = 6355
+SHA256 (rust/crates/url-1.6.0.tar.gz) = fa35e768d4daf1d85733418a49fb42e10d7f633e394fccab4ab7aba897053fe2
+SIZE (rust/crates/url-1.6.0.tar.gz) = 72377
+SHA256 (rust/crates/vcpkg-0.2.2.tar.gz) = 9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b
+SIZE (rust/crates/vcpkg-0.2.2.tar.gz) = 5870
+SHA256 (rust/crates/vec_map-0.8.0.tar.gz) = 887b5b631c2ad01628bbbaa7dd4c869f80d3186688f8d0b6f58774fbe324988c
+SIZE (rust/crates/vec_map-0.8.0.tar.gz) = 13742
+SHA256 (rust/crates/void-1.0.2.tar.gz) = 6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d
+SIZE (rust/crates/void-1.0.2.tar.gz) = 2356
+SHA256 (rust/crates/winapi-0.2.8.tar.gz) = 167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a
+SIZE (rust/crates/winapi-0.2.8.tar.gz) = 455145
+SHA256 (rust/crates/winapi-0.3.4.tar.gz) = 04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3
+SIZE (rust/crates/winapi-0.3.4.tar.gz) = 905247
+SHA256 (rust/crates/winapi-build-0.1.1.tar.gz) = 2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc
+SIZE (rust/crates/winapi-build-0.1.1.tar.gz) = 669
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998
+SHA256 (tummychow-git-absorb-0.3.0_GH0.tar.gz) = 94d540a7febd37cd74e95e7cab71ee3514df020989208ce3fe83560699072730
+SIZE (tummychow-git-absorb-0.3.0_GH0.tar.gz) = 15726
Added: head/devel/git-absorb/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/git-absorb/pkg-descr Sat Feb 9 09:20:26 2019 (r492487)
@@ -0,0 +1,9 @@
+This is a port of the hg absorb plugin to git.
+
+git absorb will automatically identify which commits are safe to modify,
+and which indexed changes belong to each of those commits. It will then
+write fixup! commits for each of those changes. You can check its output
+manually if you don't trust it, and then fold the fixups into your
+feature branch with git's built-in autosquash functionality.
+
+WWW: https://github.com/tummychow/git-absorb
More information about the svn-ports-all
mailing list