gohack icon indicating copy to clipboard operation
gohack copied to clipboard

add 'gohack promote' or 'gohack undo -get'

Open josharian opened this issue 4 years ago • 2 comments

I find myself popping back and forth a lot between working on my current project and working on its dependencies.

The most painful part of this is currently when I've decided I am happy with a change in a dependency and want to use it immediately in my project. This requires:

  1. commit+push dependency (not always to master, sometimes to PR for review while I continue to use it, so as not to be bloocked)
  2. git rev-parse head of dependency to find version to use
  3. go get pkgpath@version in project to update to latest version
  4. comment out replace directive in project (or remove it; I comment out to make it easier to switch back into hack mode)

1 will always need to be done manually, but 2-4 could be automated. gohack currently only does 4.

How do you feel about adding 2 and 3 to gohack? Ideas: gohack promote or gohack undo -get or gohack undo -promote.

(I'm starting to lean towards building another tool that most closely matches my current workflow, in which I am actively working a lot on a dependency or two, but I'd like to first investigate whether I can achieve a happy union with gohack.)

josharian avatar Sep 30 '19 17:09 josharian

I'd certainly use this, so it would get my vote!

myitcv avatar Oct 01 '19 14:10 myitcv

I was about to start on this, but...

The docs for undo state:

The undo command can be used to revert to the non-gohacked
module versions. It only removes the relevant replace
statements from the go.mod file

This seems at least mildly opposed to the behavior I want.

So I think might I wait for a bit more input before starting. In particular, should this be an undo flag, a new command, or...?

josharian avatar Oct 01 '19 22:10 josharian