Comments (4)
@mroth Any thoughts on this issue? This looks like an awesome utility and I would be stoked to help address this.
from scmpuff.
It looks like what's happening here is whatever state the repository is in in the middle of the failed rebase generates output that scmpuff fails to parse during branch extraction.
I'm traveling pretty extensive currently, if someone wants to start on this steps would be:
- Reliably generate the failing edge case above, and run a
git status -z -b
within a repo in that status to see what the output scmpuff will be looking at is. - Once that's obtained, you'll probably want to integrate it into the test cases for
commands/status/process_test.go
, and look attestCasesExtractBranch
as a failing test with the expected output. - Fix this in
commands/status/process.go
(Currently this is regex-based, which is a bit icky, but such is life...)
(If someone is not familiar with Go but wants to get involved, step 1 would be helpful in itself as added info as a comment in this issue!)
from scmpuff.
The bug report contains the string the branch is trying to be extracted from: ## HEAD (no branch)
from scmpuff.
I just wanted to chime in and say that I can reproduce this consistently whenever I'm doing a rebase and there's a conflict. As @adamv pointed out it seems scmpuff is choking on this string: ## HEAD (no branch)
.
I had a look through commands/status/process.go
and found the culprit inside the decodeBranchName
function.
I tried fiddling around with an updated RegEx and came up with this:
re := regexp.MustCompile(`^## (?:Initial commit on )?(?:(\S+?)(?:\.{3}|$)|(?:HEAD \(no branch\)))`)
This seems to work to the extent that it will either match an actual branch name or this specific string. However, I am by no means a RegEx expert, nor have I ever worked with Go before, so if anyone has a less hard-coded and more robust solution to this problem that would be much preferred.
Also, I haven't been able to actually test this inside scmpuff yet. I can try to pull down the project tomorrow, get it set up and run some tests then.
from scmpuff.
Related Issues (20)
- Failed to decode Xcode related status
- [BUG] Failed to decode git status change code for chunk HOT 3
- Doesn't work properly when git just initialized HOT 1
- bindata issues after generating new files HOT 4
- Website demo video doesn't play in Chrome HOT 6
- Add example to readme for reusing numbered variables? HOT 2
- Puff breaks if the merge has a lot of files HOT 5
- Native build errors in cobra HOT 1
- doesn't work with git alias HOT 4
- number output clashes with directory name HOT 1
- Unable to parse git status after using `git add . -N` HOT 2
- Quote $@ and make $file and $files local in `scmpuff init -s` HOT 2
- Expand unit test coverage
- no such file or directory: ../../usr/local/bin/git HOT 3
- Release new version? HOT 2
- `git log -n 1` doesn't seem to work HOT 5
- Add scmpuff to oh-my-zsh plugins HOT 1
- failed to decode in fish shell HOT 7
- fatal: '' is not a valid branch name
- Support exclusions in scmpuff_status
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scmpuff.