Downloads:
177
Downloads of v 0.6.10:
177
Last Update:
15 Apr 2023
Package Maintainer(s):
Software Author(s):
- Stephen Jung
Tags:
git-absorb git rebase- Software Specific:
- Software Site
- Software Source
- Software License
- Package Specific:
- Package Source
- Package outdated?
- Package broken?
- Contact Maintainers
- Contact Site Admins
- Software Vendor?
- Report Abuse
- Download
git-absorb
- 1
- 2
- 3
0.6.10 | Updated: 15 Apr 2023
- Software Specific:
- Software Site
- Software Source
- Software License
- Package Specific:
- Package Source
- Package outdated?
- Package broken?
- Contact Maintainers
- Contact Site Admins
- Software Vendor?
- Report Abuse
- Download
Downloads:
177
Downloads of v 0.6.10:
177
Maintainer(s):
Software Author(s):
- Stephen Jung
git-absorb 0.6.10
Legal Disclaimer: Neither this package nor Chocolatey Software, Inc. are affiliated with or endorsed by Stephen Jung. The inclusion of Stephen Jung trademark(s), if any, upon this webpage is solely to identify Stephen Jung goods or services and not for commercial purposes.
- 1
- 2
- 3
All Checks are Passing
3 Passing Tests
Deployment Method: Individual Install, Upgrade, & Uninstall
To install git-absorb, run the following command from the command line or from PowerShell:
To upgrade git-absorb, run the following command from the command line or from PowerShell:
To uninstall git-absorb, run the following command from the command line or from PowerShell:
Deployment Method:
This applies to both open source and commercial editions of Chocolatey.
1. Enter Your Internal Repository Url
(this should look similar to https://community.chocolatey.org/api/v2/)
2. Setup Your Environment
1. Ensure you are set for organizational deployment
Please see the organizational deployment guide
2. Get the package into your environment
Option 1: Cached Package (Unreliable, Requires Internet - Same As Community)-
Open Source or Commercial:
- Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
- You can also just download the package and push it to a repository Download
-
Open Source
-
Download the package:
Download - Follow manual internalization instructions
-
-
Package Internalizer (C4B)
-
Run: (additional options)
choco download git-absorb --internalize --source=https://community.chocolatey.org/api/v2/
-
For package and dependencies run:
choco push --source="'INTERNAL REPO URL'"
- Automate package internalization
-
Run: (additional options)
3. Copy Your Script
choco upgrade git-absorb -y --source="'INTERNAL REPO URL'" [other options]
See options you can pass to upgrade.
See best practices for scripting.
Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.
If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:
choco upgrade git-absorb -y --source="'INTERNAL REPO URL'"
$exitCode = $LASTEXITCODE
Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
Exit 0
}
Exit $exitCode
- name: Install git-absorb
win_chocolatey:
name: git-absorb
version: '0.6.10'
source: INTERNAL REPO URL
state: present
See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.
chocolatey_package 'git-absorb' do
action :install
source 'INTERNAL REPO URL'
version '0.6.10'
end
See docs at https://docs.chef.io/resource_chocolatey_package.html.
cChocoPackageInstaller git-absorb
{
Name = "git-absorb"
Version = "0.6.10"
Source = "INTERNAL REPO URL"
}
Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.
package { 'git-absorb':
ensure => '0.6.10',
provider => 'chocolatey',
source => 'INTERNAL REPO URL',
}
Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.
4. If applicable - Chocolatey configuration/installation
See infrastructure management matrix for Chocolatey configuration elements and examples.
This package was approved by moderator gep13 on 24 May 2023.
This is a port of Facebook's hg absorb
, which I first read about on mozilla.dev.version-control:
> * Facebook demoed hg absorb
which is probably the coolest workflow enhancement I've seen to version control in years. Essentially, when your working directory has uncommitted changes on top of draft changesets, you can run hg absorb
and the uncommitted modifications are automagically folded ("absorbed") into the appropriate draft ancestor changesets. This is essentially doing hg histedit
+ "roll" actions without having to make a commit or manually make history modification rules. The command essentially looks at the lines that were modified, finds a changeset modifying those lines, and amends that changeset to include your uncommitted changes. If the changes can't be made without conflicts, they remain uncommitted. This workflow is insanely useful for things like applying review feedback. You just make file changes, run hg absorb
and the mapping of changes to commits sorts itself out. It is magical.
Elevator Pitch
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 --and-rebase
git absorb
will automatically identify which commits are safe to modify, and which staged changes belong to each of those commits. It will then write fixup!
commits for each of those changes.
With the --and-rebase
flag, these fixup commits will be automatically integrated into the corresponding ones. Alternatively, 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:
git add $FILES_YOU_FIXED
git absorb
git log # check the auto-generated fixup commits
git rebase -i --autosquash master
Usage
git add
any changes that you want to absorb. By design,git absorb
will only consider content in the git index (staging area).git absorb
. This will create a sequence of commits onHEAD
. Each commit will have afixup!
message indicating the message (if unique) or SHA of the commit it should be squashed into.- If you are satisfied with the output,
git rebase -i --autosquash
to squash thefixup!
commits into their predecessors. You can set theGIT_SEQUENCE_EDITOR
environment variable if you don't need to edit the rebase TODO file. - If you are not satisfied (or if something bad happened),
git reset --soft
to the pre-absorption commit to recover your old state. (You can find the commit in question withgit reflog
.) And if you thinkgit absorb
is at fault, please file an issue.
md5: 5092FC9654473C2A817B4F802B31B9BB | sha1: A861C9432F3DA95FEA4280E7B25961146412164E | sha256: 6B32363634A8ACA6B1D5C700FE90C0E67C6BB810F0BC29B1DEED1F4628025D64 | sha512: 17B2CF819EC11D6EABCAC573C0C79F2D7F52E32833367B8DD4D0DAAA6626D753AECDBD1579239B300A80598050293BC7DCA2C8B8166630845DC60213F9A70D0A
# BSD 3-Clause License
Copyright (c) 2018, Stephen Jung
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERIFICATION
Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.
Package can be verified by going to the project's GitHub releases page,
Release: https://github.com/tummychow/git-absorb/releases/tag/0.6.10
Download the `windows-msvc` asset.
Asset: https://github.com/tummychow/git-absorb/releases/download/0.6.10/git-absorb-0.6.10-x86_64-pc-windows-msvc.tar.gz
After expanding the archive, the file's hash can be checked using 'Get-FileHash'
Checksum: 17B2CF819EC11D6EABCAC573C0C79F2D7F52E32833367B8DD4D0DAAA6626D753AECDBD1579239B300A80598050293BC7DCA2C8B8166630845DC60213F9A70D0A
Log in or click on link to see number of positives.
- git-absorb.0.6.10.nupkg (22dbcf590cba) - ## / 64
- git-absorb.exe (6b32363634a8) - ## / 59
In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).
Chocolatey Pro provides runtime protection from possible malware.
This package has no dependencies.
Ground Rules:
- This discussion is only about git-absorb and the git-absorb package. If you have feedback for Chocolatey, please contact the Google Group.
- This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
- The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
- Tell us what you love about the package or git-absorb, or tell us what needs improvement.
- Share your experiences with the package, or extra configuration or gotchas that you've found.
- If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.