Trouble with first GHC patch submission: uncommitted changes

Conal Elliott conal at
Thu Apr 7 01:25:41 UTC 2016

Thanks again, Austin, for all the help in this exchange and on #ghc,
leading to Looking forward to more
GHC involvement.  - Conal

On Wed, Apr 6, 2016 at 5:21 PM, Austin Seipp <austin at> wrote:

> On Wed, Apr 6, 2016 at 7:11 PM, Conal Elliott <conal at> wrote:
> > I'm trying to get through my first GHC patch submission, using git and
> > Phabricator, following directions at
> > "git status" shows
> two
> > unstaged changes: "deleted:    test   spaces" and "modified:
> > ../libraries/bytestring (modified content)" (in a submodule). I don't
> know
> > where either change came from. When I use "arc diff" to submit my
> intended
> > change to the compiler, I get asked about these to uncommitted changes. I
> > say to ignore the submodule change and do not amend my commit with the
> "test
> > spaces" deletion, I get "Usage Exception: You can not continue with
> > uncommitted changes. Commit or discard them before proceeding." I don't
> know
> > how to discard (nor whether safe), and I don't think I want to commit.
> I'm not sure about the 'test spaces' change. That should be added to
> .gitignore I think. I'll try to see if I can get that done for you.
> It should be fine to discard the changes; the spaces thing is an
> artifact of the build system testing a binary distribution (I assume
> you did ./validate ?)
> The bytestring change might be because there were some left over files
> from the build system lingering, that might not be in .gitignore. Just
> try running 'git status' in libraries/bytestring and seeing what it
> shows.
> > Note: the directions say to use "arc diff~" (rather than "arc diff"), to
> > which arc replied "(Assuming 'diff~' is the British spelling of
> 'diff'.)".
> Ugh, sorry. That's a clerical error. I must have typo'd that...
> Assuming you want to submit the latest patch, on your current branch, you
> want:
> $ arc diff HEAD~
> The first argument to 'diff' is essentially the commit to start as the
> 'base' commit. You then get a diff generated, from the 'base' commit
> against the head commit of your working copy. In other words, when
> you say "arc diff XXX", that's basically a way of saying "Send the
> diff between XXX..HEAD".
> In this case, you can see that if you say "git log HEAD~..HEAD", which
> would only contain one commit (presumably, what you want).
> Arcanist can always tell you exactly what it will do, in a detailed
> way, before doing it. Instead of running 'arc diff', run 'arc which'
> $ arc which HEAD~
> That will tell you exactly what arcanist will do, in a detailed
> manner. E.g. it will tell you if it will create a new diff, or update
> an old one, and exactly the commits it will use to create or update
> that diff. You can use further flags/arguments to 'arc diff' or 'arc
> which' to override the behavior as you want.
> > Thanks for any help!
> >
> > -- Conal
> >
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at
> >
> >
> --
> Regards,
> Austin Seipp, Haskell Consultant
> Well-Typed LLP,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list