Date: Sat, 9 Feb 2019 09:20:26 +0000 (UTC) From: "Tobias C. Berner" <tcberner@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r492487 - in head/devel: . git-absorb Message-ID: <201902090920.x199KQYd013789@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902090920.x199KQYd013789>