kejadlen / git-together Goto Github PK
View Code? Open in Web Editor NEWBetter commit attribution while pairing without messing with your git workflow.
License: MIT License
Better commit attribution while pairing without messing with your git workflow.
License: MIT License
Hey there,
We noticed today that running git
with no arguments segmentation faults on our newer workstations. This has already been fixed, per issue #45, but the latest release (v0.1.0-alpha.21) available to brew install doesn't contain this fix. Could ya'll cut a new release and update the tap?
Alternatively, if you have guidance on another way we should be installing, we can follow that, but we're kinda hesitant to install the necessary Rust tooling to compile from source on our workstations.
We should probably add a license since we use this regularly.
Now that we use this for making git aliases work, it should not fail out and downstream usage should just no-op if we don't have authors, etc.
As in issue #37, I receive an issue after install via the tap:
dyld[65451]: Library not loaded: '/usr/local/opt/[email protected]/lib/libssl.1.1.dylib'
Referenced from: '/opt/homebrew/Cellar/git-together/0.1.0-alpha.24/bin/git-together'
Reason: tried: '/usr/local/opt/[email protected]/lib/libssl.1.1.dylib' (no such file), '/usr/local/lib/libssl.1.1.dylib' (no such file), '/usr/lib/libssl.1.1.dylib' (no such file)
[1] 65451 abort git-together
Opening a new issue to drive out instructions for a workaround or for a fix within this project.
Maybe I'm missing it and it already exists, but I can't figure out an easy way to determine who the currently set author(s) are.
When I do git with sh km
and then do git with
, it shows all potential authors instead of the current ones. And I don't see any option like git with --list
or git with -l
. It would be nice to have.
Maybe support this functionality in git-together?
I just wanted to tell you I appreciate the characters from The Expanse as committers in the configuration example, it's nice to see you having fun ๐จโ๐ ๐.
It appears that amend is adding multiple sign-offs.
commit 1a9462c67aa33c012727241759d31f0b8c36dcb6
Author: Larry Hamel <[email protected]>
Date: Mon Jun 5 09:40:05 2017 -0700
add Gogland ide prefs
includes templates for ginkgo
Signed-off-by: Todd Sedano <[email protected]>
Signed-off-by: Larry Hamel <[email protected]>
Maybe this is due to the auto-rotation of the author and committer. We like the auto-rotation of the author and committer.
I'm seeing the following issue on my Macbook after install via the tap:
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Users/jamie/.brew/bin/git-together
Reason: image not found
fish: 'git-together' terminated by signal SIGABRT (Abort)
I think this may be due to my brew prefix being pointed at my user directory. I am new to rust so I am not sure how rustc
handles linking to paths for dynamic libraries. When I build the project local I have no trouble with the resulting binaries. I can also fix the issue by linking my user directory opt directory into /usr/local/
.
May be a limited corner case but if you decide it's worth fixing I am happy to help debug further.
Hi,
I just played with git-together and tried git-together rebase -i, it looks like it maintains the existing author and committer.
For my current team, that behavior is really nice. I thought that maybe the committer would be reset by the current settings of git-together.
Were you planning on changing it?
Will it work with https://git-lfs.github.com/ ?
Thanks for making this tool. It's been very helpful for growing collaborative practices in my org.
A paper cut felt among engineers relates to the practice of aliasing git with git-together and interacting with repositories that have opted out if git together config. The UX looks a bit like this atm
git commit -m "making changes"
Error: error getting git config for 'git-together.active'
Caused by: config value 'git-together.active' was not found; class=Config (7); code=NotFound (-3)
which causes friction and friction is a turn off for wider adoption. It would be great if instead this tool emitted a warning so that its visible that this repo a person is interacting with is not yet configured for git-together but allowed the git process to continue
On a new m1 laptop using Big Sur, I'm seeing this error. I installed using brew install pivotal/tap/git-together
% git-together
dyld: Library not loaded: /usr/local/opt/[email protected]/lib/libssl.1.1.dylib
Referenced from: /opt/homebrew/bin/git-together
Reason: image not found
zsh: abort git-together
It is now in /opt/homebrew/opt/[email protected]/
We're reproduced this on a couple of iMacs - git-together
was previously installed (under macOS Mojave), then started showing segfaults after the upgrade to Catalina. It does appear that the git-together
commands work, since the terminal integration showing the active pair does show it changing, even after the segfault message. Not sure if the warning about the panic from calling git-together
with no arguments is normal, or connected to the same segfault issue.
ยฑ lw |master {7} โ| โ git with lw ns
Segmentation fault: 11
ยฑ lw+ns |master {7} โ| โ git-together
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/50f8aadd746ebc929a752e5ffb133936ee75c52f/src/libcore/macros.rs:41:40
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
ยฑ lw+ns |master {7} โ| โ git --version
git version 2.24.1
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
Cargo.toml
error-chain 0.12
git2 0.14
.github/workflows/ci.yml
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
.github/workflows/release.yml
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
actions/checkout v2
actions/create-release v1
actions/checkout v2
actions-rs/toolchain v1
actions-rs/cargo v1
actions/upload-release-asset v1
actions/upload-release-asset v1
Since otherwise, git commit -m
actually runs git commit -m --signoff
, which is undesirable.
As a developer, I expect to easily see who is currently paired on my system.
Given I have already set a pair with 'git-together with ab cd'
When I type anything on the command prompt
Then I expect to see 'ab cd' on the command prompt.
Side note: I'm willing to update pivotal workstation-setup with git-together, I'd just like to see how to print this to the command prompt.
I've been trying to get magit (for emacs) and fugitive (for vim) to work well with git-together. One of the problems for both is that if they are launched and don't rely on aliases, then even if you change the "git binary" for those apps, it can't find the original git binary when using pass through commands. git-together assumes that git is in the current $PATH, so that breaks down when plugins are not using the default user's shell to exec commands. See #31 and #22 for examples.
One approach to fixing that could be to make the git binary configurable from here:
Line 82 in 90e01b5
If this is set in the git-together config, this also could allow forwarding to other git proxy commands (like hub). I don't know when I'll have time to work on this, but opening the issue up for discussion.
git-together assumes that the first argument is the subcommand, e.g. git commit [more args]
. But options that apply to git as a whole rather than to a particular subcommand have to be specified before the subcommand. IntelliJ's git integration passes one such option: git -c core.quotepath=false commit --only -F <temp dir>/git-commit-msg-.txt -- <files to commit>
. Because git-together assumes that the first argument is the subcommand, it doesn't apply signoffs when the above command is run.
I'm not sure what the best way to fix this is. The easy thing to do would be to search for commit-triggering subcommands anywhere in the argument list, but that could lead to false positives. The most correct thing to do would be to emulate Git's argument parsing. But that's a lot of extra complexity and would be likely to break if more git-wide options are added in the future.
If you set git config user.initials to the same value as git-together.active, then bash-it's theming will pick up the current pair initials the same way it does for git-pair.
Relevant line in the bash-it profile sauce
https://github.com/Bash-it/bash-it/blob/2a0a425334af899a6fe0004f405927a6ef683f07/themes/base.theme.bash#L410
What it looks like when you set it with bash-it:
When we tried to run git-together.exe on Windows, we got this error message:
C:/path/to/git-together.exe: error while loading shared libraries: api-ms-win-crt-math-l1-1-0.dll: cannot open shared object file: No such file or directory
We had to install the Visual C++ Redistributable for it to work.
So not really a bug, but perhaps update the README to mention this dependency?
When trying to integrate with https://github.com/tpope/vim-fugitive, we assign g:fugitive_git_executable
the value of git-together
and :Gcommit
stops working.
For more context, please ask @d
git ci
when aliased to git commit
doesn't set signed-off by. This may not be possible with the current setup, but ideally these are resolved prior to proxying down to git.
As a developer, I expect to easily see who is currently paired on my system.
Given I have already set a pair with 'git-together with ab cd'
When I type 'git-together with'
Then I expect to see the name and email address for ab and cd
see https://github.com/pivotal/git-author/issues/22 for a full reproduction of the real issue in our development environment.
In multi-repo development environments (all of CF) we'd like to be able to set authors for all repos globally, every time. We also use git aliases heavily. git-author fits most of our needs, but leaves a small gap where using git with ab cd
can set local repo state. Once that state is set, it frequently sticks around and sneaks into our commit messages. We'd like to effectively disable running git with
without the --global
flag, and it seems like an environment variable would make that really easy.
git diff --quiet
should return an exit code of 1 when a difference exists. When it's aliased to git-together
, it always returns an exit code of 0.
As a developer, I expect to easily set who is currently paired on my system.
When I type 'git-together pair ab cd'
Then I expect them to be paired
Sidenote: I'm worried about this confusing people who have been using git pair and them not realizing that something different is going on. I'm not sure how to handle this.
This used to work but I removed it when it was causing random CI failures. We should really re-enable this check.
Experienced on Windows 10 with git-together release 11.
Seems to be intermittent--usually works, and this is after the commit;
2017-04-19 16:32:50 โ EUROPA-WIN10 in /mnt/c/Users/pivotal/workspace/<snip>
ยฑ md+al |benchmark S:1 โ| โ git commit -m "Add <snip>"
[benchmark 0272f8c] Add <snip>
Author: <snip>
warning: CRLF will be replaced by LF in benchmark/benchmark.ps1.
The file will have its original line endings in your working directory.
1 file changed, 24 insertions(+)
create mode 100644 benchmark/benchmark.ps1
error: error setting git config 'git-together.active': 'al+md'
caused by: [2/-1] failed to rename lockfile to '/mnt/c/Users/pivotal/workspace/<snip>/.git/config': Permission denied
2017-04-19 16:33:04 โ EUROPA-WIN10 in /mnt/c/Users/pivotal/workspace/<snip>
ยฑ md+al |benchmark โ| โ
Spinning Windows releases would be mega useful!
Appveyor?
Hi!
I'd like to be using git-together while coding on Linux.
Currently (version 0.1.0-alpha.26) the binary is a Mach-O 64-bit arm64 executable
file /home/linuxbrew/.linuxbrew/Cellar/git-together/0.1.0-alpha.26/bin/git-together
/home/linuxbrew/.linuxbrew/Cellar/git-together/0.1.0-alpha.26/bin/git-together: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE|HAS_TLV_DESCRIPTORS>
I'm quite capable to build in rust, and make it available in Linux, but I don't know how to make a PR that actually fixes it for Linux users with homebrew.
Alternatively, I'm happy to document building from source in the README, so users on all platforms can benefit.
We hadn't set our git with
when we ran git revert --abort
and it said:
โ git revert --abort
error: error getting git config for 'git-together.active'
caused by: [7/-3] config value 'git-together.active' was not found
Then we set our git with
and tried again:
โ git revert --abort
fatal: revert: --signoff cannot be used with --abort
Our workstations is macOS,
โ git-together --version
git version 2.13.0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.