Page MenuHomePhabricator

`arc diff` should do an early check for total diff size and provide appropriate hints for the user
Closed, WontfixPublic


Arcanist currently does the following 'early' checks:

  • Large number of changes (250)
  • Total size of corpus (4mb) for a given change, which then recommends the user to use --less-context

However, users bumped into a similar case where small changes to large files (xcode projects, around a mb each), lead to arc diff exploding due to the upload, which gives a not-so-intuitive error, and does not give proper hints as to how to work around it.

Might be useful to also check the overall size and recommend --less-context in these cases as well

Event Timeline

talshiri created this task.Dec 16 2014, 9:39 PM
talshiri assigned this task to epriestley.
talshiri raised the priority of this task from to Needs Triage.
talshiri updated the task description. (Show Details)
talshiri added a project: Arcanist.
talshiri added a subscriber: talshiri.
joshuaspence triaged this task as Wishlist priority.Jan 12 2015, 11:28 AM

T8259 should partially fix this.

From T8343, the total corpus size warning didn't appear to fire properly.

jparise added a subscriber: jparise.Mar 7 2016, 6:57 PM
nickz added a subscriber: nickz.Mar 7 2016, 7:08 PM
epriestley closed this task as Wontfix.Sep 24 2018, 4:37 PM

In T13098, I expect to remove both of these warnings because:

  • Differential behavior is now better in these cases (we degrade more gracefully in multiple stages); and
  • I'm not sure any user has ever answered "n" to these prompts and then broken their change into smaller pieces.

T784 will likely allow individual files to be flagged for --less-context. We may do this automatically.

Modularity changes out of T13098 will likely let you reimplement these checks yourself.

We may also make arc upload the diff as a file (which can use chunked uploading and upload non-UTF8 text), then tell Phabricator to parse it by saying "go parse F123 into a diff" but this is less of an "arc" behavior and more of a server configuration issue.