Page MenuHomePhabricator

Add a heursitic for initial pushes which are really imports

Authored by epriestley on Feb 19 2015, 5:23 PM.



Fixes T7298. There are two ways to import a repository that you want to host, today:

  • Create it as "hosted", then push everything to it.
  • Create it as "imported", let it import, then switch it to "hosted".
  • (Neither of these work with SVN.)

We don't specifically recommend one or the other, although I believe both should work, and most users seem to go with the first one.

In the first workflow, the new empty repository imports completely and gets marked "imported", so our default behavior is then to publish commits. This can generate a lot of email/notification/feed spam.

If you're a fancy expert you might turn off "publish" before pushing, but normal users will frequently miss this.

Instead, when we receive an "import-like" push to an empty repository, put the repository back into "importing" after we accept the changes.

This has to be heuristic since we can't know for sure if a push is an import or new commits, but here's a simple rule that should do pretty well. We can refine it if necessary.

Test Plan
  • Created a new empty repository.
  • Added some debugging code; verified the "commit count" and "empty" rules were calculated properly.
  • Pushed 8+ commits and saw the repo go into "importing", import, and leave "importing".
  • Pushed 8+ commits again and saw them publish.

Diff Detail

rP Phabricator
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley updated this revision to Diff 28501.Feb 19 2015, 5:23 PM
epriestley retitled this revision from to Add a heursitic for initial pushes which are really imports.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
btrahan accepted this revision.Feb 19 2015, 6:37 PM
btrahan edited edge metadata.

the 7 commit heuristic sounds good to me.

This revision is now accepted and ready to land.Feb 19 2015, 6:37 PM
This revision was automatically updated to reflect the committed changes.