
Hence you can go wild on your local branches (use what ever development model suites your needs) and get one final squashed commit with an extensive summary.
Sure, but this leads to generally unreviewable patches IMHO. In order to stay sane I generally split up my work into a set of standalone patches with git rebase and then create a Diff of each of these commits. Phabricator supports this by having a notion of dependencies between Diffs, but arcanist has no sensible scheme for taking a branch and conveniently producing a series of Diffs.
Yes, this has been a constant source of frustration for us as well. Dealing with dependent diffs is just plain painful with arc :( What I usually end up doing, and I assume that’s what you are describing is: Turning A -- B -- C -- D -- E -- F -- origin/master ^ HEAD into: branch B1: E -- F -- origin/master / branch B2: C -- D / branch B3: A -- B and producing three diffs: $ git checkout E $ arc diff origin/master # producing D1 $ git checkout C $ arc diff B1 # adding “depends on D1" into the summary field $ git checkout A $ git diff B2 # adding “depends on D2” into the summary field and then rebase B2 and B3 when changes to D1 on B1 are necessary. Running `arc patch` with dependent diffs often resulted in trouble; this seems to be getting better with the staging areas though. So clearly we can see there are drawbacks. All I wanted to say in the previous email was essentially that from my experience frustration with arc often came from trying to make arc be git. Cheers, Moritz