Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15451018
D8133.id18400.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
15 KB
Referenced Files
None
Subscribers
None
D8133.id18400.diff
View Options
diff --git a/src/applications/repository/engine/__tests__/data/CHE.svn.tgz b/src/applications/repository/engine/__tests__/data/CHE.svn.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..e24e20b993be876fa98cd1b52f80d17106d1b508
GIT binary patch
literal 9245
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
literal 0
Hc$@<O00001
diff --git a/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php b/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php
--- a/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php
+++ b/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php
@@ -1103,11 +1103,55 @@
pht('Artificial SVN root should fail.'));
}
+ public function testSubversionForeignStubsParser() {
+ $repository = $this->buildBareRepository('CHE');
+ $repository->setDetail('svn-subpath', 'branch/');
- private function expectChanges(
+ id(new PhabricatorRepositoryPullEngine())
+ ->setRepository($repository)
+ ->pullRepository();
+
+ id(new PhabricatorRepositoryDiscoveryEngine())
+ ->setRepository($repository)
+ ->discoverCommits();
+
+ $viewer = PhabricatorUser::getOmnipotentUser();
+
+ $commits = id(new DiffusionCommitQuery())
+ ->setViewer($viewer)
+ ->withRepositoryIDs(array($repository->getID()))
+ ->execute();
+
+ foreach ($commits as $commit) {
+ $this->parseCommit($repository, $commit);
+ }
+
+ // As a side effect, we expect parsing these commits to have created
+ // foreign stubs of other commits.
+
+ $commits = id(new DiffusionCommitQuery())
+ ->setViewer($viewer)
+ ->withRepositoryIDs(array($repository->getID()))
+ ->execute();
+
+ $commits = mpull($commits, null, 'getCommitIdentifier');
+
+ $this->assertEqual(
+ true,
+ isset($commits['2']),
+ 'Expect rCHE2 to exist as a foreign stub.');
+
+ // The foreign stub should be marked imported.
+
+ $commit = $commits['2'];
+ $this->assertEqual(
+ PhabricatorRepositoryCommit::IMPORTED_ALL,
+ (int)$commit->getImportStatus());
+ }
+
+ private function parseCommit(
PhabricatorRepository $repository,
- array $commits,
- array $expect) {
+ PhabricatorRepositoryCommit $commit) {
switch ($repository->getVersionControlSystem()) {
case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
@@ -1123,6 +1167,15 @@
throw new Exception(pht('No support yet.'));
}
+ $parser_object = newv($parser, array(array()));
+ return $parser_object->parseChangesForUnitTest($repository, $commit);
+ }
+
+ private function expectChanges(
+ PhabricatorRepository $repository,
+ array $commits,
+ array $expect) {
+
foreach ($commits as $commit) {
$commit_identifier = $commit->getCommitIdentifier();
$expect_changes = idx($expect, $commit_identifier);
@@ -1137,8 +1190,7 @@
$repository->getCallsign()));
}
- $parser_object = newv($parser, array(array()));
- $changes = $parser_object->parseChangesForUnitTest($repository, $commit);
+ $changes = $this->parseCommit($repository, $commit);
$path_map = id(new DiffusionPathQuery())
->withPathIDs(mpull($changes, 'getPathID'))
diff --git a/src/applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php b/src/applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php
--- a/src/applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php
+++ b/src/applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php
@@ -509,11 +509,15 @@
"Missing commits ({$need}) in a SVN repository which is not ".
"configured for subdirectory-only parsing!");
}
+
foreach ($need as $foreign_commit) {
$commit = new PhabricatorRepositoryCommit();
$commit->setRepositoryID($repository->getID());
$commit->setCommitIdentifier($foreign_commit);
$commit->setEpoch(0);
+ // Mark this commit as imported so it doesn't prevent the repository
+ // from transitioning into the "Imported" state.
+ $commit->setImportStatus(PhabricatorRepositoryCommit::IMPORTED_ALL);
$commit->save();
$data = new PhabricatorRepositoryCommitData();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Mar 29, 7:42 PM (6 d, 22 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7706021
Default Alt Text
D8133.id18400.diff (15 KB)
Attached To
Mode
D8133: When creating foreign stubs during SVN import, mark them imported
Attached
Detach File
Event Timeline
Log In to Comment