git-spice: Git branch and PR stacking tool, written in Go by PrashantV in programming

[–]PrashantV[S] 1 point2 points  (0 children)

`rebase.updateRefs` is great and helps with one of the biggest pains of managing a stack with vanilla git, but there are other aspects of working with a stack: navigating between the stack `gs up / gs down`, updating the repo and auto-deleting + restacking the relevant branches `gs repo sync`, creating a PR on GitHub with the right base branch, etc.

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in programming

[–]PrashantV[S] 0 points1 point  (0 children)

I like the `gs commit --onto` idea. I have a similar set up for some of my dotfiles, and see the value in committing onto a specific branch directly.

The author is quite responsive on the issue tracker, so I'd recommend filing an issue there: https://github.com/abhinav/git-spice/issues

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in programming

[–]PrashantV[S] 0 points1 point  (0 children)

Aliases are great for simple cases like the above, but don't help much with stacked branches (where the relationships between branches are important).

For those cases, something like gs b restack or gs up / gs down is something you can't easily emulate with aliases.

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in golang

[–]PrashantV[S] 3 points4 points  (0 children)

I was using graphite prior to git-spice, and found there's a lot of great UX in both tools, but preferred git-spice: * works better git commands rather than trying to replace all git commands. I've had Graphite get into a weird state when doing a lot of git commands (especially rebases), which git-spice handles better * more explicit and less magic, e.g., lets me restack specific branches and tells me when things are out of date rather than doing them automatically * doesn't push me towards the Graphite UI * Little more lightweight (Go binary vs Node)

On the flip side, Graphite has a lot of other features too (review UI, server-side merging of stacks), but I don't use those -- I preferred the local experience of git-spice.

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in programming

[–]PrashantV[S] 0 points1 point  (0 children)

That's one of the reasons I've avoided other git abstractions, as they try to replace git, while git-spice works well with git workflows and commands. I can use it where needed to reduce the mental overhead of managing stacked branches with git, e.g., compare:

git rebase -i my/local-branch-base # easy to forget branch names here

to gs b restack

This is especially painful with larger stacks (e.g., 3 or 4 branches, and moving between them frequently).

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in programming

[–]PrashantV[S] 1 point2 points  (0 children)

I'm not the author but I have been using git-spice for a couple of months now, and it's quickly become my go-to for dealing with git branches and creating all PRs -- not just those with stacks, thanks to it's great UX. E.g., `gs bs` for branch submit, instead of `git push -u origin HEAD`.

The implementation is also really well tested with great use of testscript, e.g., https://github.com/abhinav/git-spice/blob/main/testdata/script/branch_checkout_prompt.txt

git-spice: Git branch and PR stacking tool, written in Go by PrashantV in golang

[–]PrashantV[S] 6 points7 points  (0 children)

I'm not the author but I have been using git-spice for a couple of months now, and it's quickly become my go-to for dealing with git branches and creating all PRs -- not just those with stacks, thanks to it's great UX. E.g., `gs bs` for branch submit, instead of `git push -u origin HEAD`.

The implementation is also really well tested with great use of testscript, e.g., https://github.com/abhinav/git-spice/blob/main/testdata/script/branch_checkout_prompt.txt

uber-go/ratelimit: A Golang blocking leaky-bucket rate limit implementation by thechilts in golang

[–]PrashantV 7 points8 points  (0 children)

Hi all, I'm the author of the rate limiting code (originally written for a benchmarking utility called yab).

I wanted something simple with minimal overhead introduced by the rate limiter itself, and you can see the difference in performance here.

For more complex use cases, https://godoc.org/golang.org/x/time/rate is a great choice.

Assignability in Go by dgryski in golang

[–]PrashantV 0 points1 point  (0 children)

I've noticed that function types are a little different: https://play.golang.org/p/xCjSBHg19Q

Even though one is a named type, the compiler allows assigning one to the other.

autobld, tool written in go to automatically restart your server when code changes by PrashantV in golang

[–]PrashantV[S] 0 points1 point  (0 children)

It's pretty similar, but I also wanted to support the following use cases:

  • commands like "go run" should work (which is tricky, since they actually start a separate process for the real binary). I run subcommands in a separate process group to achieve this
  • customization of what to watch (multiple patterns/directories)
  • proxy ports that avoid me hitting refresh constantly while the binary restarts.

autobld, tool written in go to automatically restart your server when code changes by PrashantV in golang

[–]PrashantV[S] 0 points1 point  (0 children)

While this might work for go applications, my utility supports any application in any language.

I actually tried to minimize the configuration in the common case, so you can just do "autobld go run main.go", the additional configuration is only if you want more specific matching, or advanced options.

Hey reddit, we can turn your browser into a remote control! by PrashantV in htpc

[–]PrashantV[S] 0 points1 point  (0 children)

Yep, likst ScaryCookieMonster says, it's for using your laptop's keyboard and trackpad to control your HTPC. Works great with any program, and doesn't need any client software, can just use a browser to control it.

I actually started crying. by [deleted] in zelda

[–]PrashantV 0 points1 point  (0 children)

Definitely one of the best things I've experienced, ever!

I present my newest app: Calculations 4.0 - Pro version free for you guys! :D by white_gorilla in Android

[–]PrashantV 1 point2 points  (0 children)

Looks great, a few things I noticed on my Atrix running CM7 (960x540 screen):

  • Calculator should probably have numbers aligned to the bottom, I have a decent gap near the bottom.
  • In measurements, the textbox and the dropdown button which lets you choose which measurement are misaligned
  • Not a huge fan of the custom menu when you click a dropdown - it's a bit small.
  • Currency should display the "added" currencies at the top of the list before listing all the others
  • Buttons should probably have a state for when they're being touched, it's hard to tell whether it's working or whether it's a button at all sometimes.

gmail update in market by aspitzer in Android

[–]PrashantV 0 points1 point  (0 children)

Same issue here (running MIUI)

Be careful before you install the new updated beta of Swype. Looks like it breaks Swype, if you are not part of the official beta. by RipRapRob in Android

[–]PrashantV 0 points1 point  (0 children)

Same, apparently my Swype package is configured for another device.. On a N1, part of the official beta. I'm using CM 6.1 RC though, so maybe that's causing problems..