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
Unknown Object (File)
Thu, Apr 11, 10:48 AM
Unknown Object (File)
Fri, Mar 29, 6:24 PM
Unknown Object (File)
Thu, Mar 28, 9:03 AM
Unknown Object (File)
Feb 15 2024, 8:10 AM
Unknown Object (File)
Feb 13 2024, 10:43 AM
Unknown Object (File)
Feb 12 2024, 7:23 PM
Unknown Object (File)
Feb 11 2024, 2:50 PM
Unknown Object (File)
Feb 3 2024, 2:16 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.