Simon Marlow <marlo...@gmail.com> writes:

> Well, let's be careful here.  I like the idea, but it's not a complete
> solution for people who don't want to use arc, because you can't revise a
> patch after submission in response to reviews, you would have to open a new
> PR.
>
I have considered building something like this in the past since posting
series of patches via Arc is exceedingly painful. It's not entirely
clear what it would look like, but I was thinking the tool would,

 1. take a branch of commits, for instance,

      A -- B -- C -- D -- E -- F -- origin/master
      ^
      HEAD

 2. allow you to decide how to break it into Diffs. for instance,

      new diff 
      A
      B
      new diff
      C
      D
      E
      new diff
      F

    which would produce three diffs:
      * one containing commits A and B
      * one containing commits C, D, and E
      * another containing F

 3. run `arc diff` to upload each Diff to Phabricator, setting up the
    appropriate dependency structure between the created Diffs

 4. rewrite history of your branch to add an annotation to the commit
    messages saying which diff each belongs to

You are then free to continue modifying and even rebasing your branch
and later the tool can be used to update the diffs from the current
state of your branch. The tool could do this automatically,
reconstructing where each commit belongs from the annotations added
during upload.

That being said, I ultimately decided it would be easier to just
continue carrying out this workflow by hand considering I don't post
large series of patches *that* often. I'm also a bit more eager to
squash now than I used to be, in part due to the pain of submitting
fine-grained patch sets. On the whole I do wish that Phabricator were
more Git-like.

Cheers,

- Ben

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to