Page MenuHomePhabricator

Add a heursitic for initial pushes which are really imports
ClosedPublic

Authored by epriestley on Feb 19 2015, 5:23 PM.
Tags
None
Referenced Files
F13295661: D11827.id28501.diff
Thu, Jun 6, 6:39 AM
F13265071: D11827.id28501.diff
Tue, May 28, 1:19 AM
F13262522: D11827.diff
Mon, May 27, 2:13 AM
F13245609: D11827.diff
Thu, May 23, 6:08 AM
F13223689: D11827.diff
Sun, May 19, 4:47 AM
F13206027: D11827.id28501.diff
Wed, May 15, 4:47 AM
F13205721: D11827.diff
Wed, May 15, 2:18 AM
F13189729: D11827.diff
Sat, May 11, 6:19 AM

Details

Summary

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

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

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 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.