Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15369973
D20450.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
D20450.diff
View Options
diff --git a/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php b/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
--- a/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
+++ b/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php
@@ -46,22 +46,12 @@
// NOTE: We can't use DiffusionLowLevelGitRefQuery here because
// `git for-each-ref` does not support `--contains`.
- if ($repository->isWorkingCopyBare()) {
- list($stdout) = $repository->execxLocalCommand(
- 'branch --verbose --no-abbrev --contains %s -- %Ls',
- $contains,
- $patterns_argv);
- $ref_map = DiffusionGitBranch::parseLocalBranchOutput(
- $stdout);
- } else {
- list($stdout) = $repository->execxLocalCommand(
- 'branch -r --verbose --no-abbrev --contains %s -- %Ls',
- $contains,
- $patterns_argv);
- $ref_map = DiffusionGitBranch::parseRemoteBranchOutput(
- $stdout,
- DiffusionGitBranch::DEFAULT_GIT_REMOTE);
- }
+ list($stdout) = $repository->execxLocalCommand(
+ 'branch --verbose --no-abbrev --contains %s -- %Ls',
+ $contains,
+ $patterns_argv);
+ $ref_map = DiffusionGitBranch::parseLocalBranchOutput(
+ $stdout);
$refs = array();
foreach ($ref_map as $ref => $commit) {
diff --git a/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php b/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php
--- a/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php
+++ b/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php
@@ -33,16 +33,9 @@
$prefixes = array();
- if ($repository->isWorkingCopyBare()) {
- $branch_prefix = 'refs/heads/';
- } else {
- $remote = DiffusionGitBranch::DEFAULT_GIT_REMOTE;
- $branch_prefix = 'refs/remotes/'.$remote.'/';
- }
-
+ $branch_prefix = 'refs/heads/';
$tag_prefix = 'refs/tags/';
-
if ($with_refs || count($ref_types) > 1) {
// If we're loading refs or more than one type of ref, just query
// everything.
diff --git a/src/applications/repository/engine/PhabricatorRepositoryPullEngine.php b/src/applications/repository/engine/PhabricatorRepositoryPullEngine.php
--- a/src/applications/repository/engine/PhabricatorRepositoryPullEngine.php
+++ b/src/applications/repository/engine/PhabricatorRepositoryPullEngine.php
@@ -366,8 +366,12 @@
$fetch_rules = $this->getGitFetchRules($repository);
+ // For very old non-bare working copies, we need to use "--update-head-ok"
+ // to tell Git that it is allowed to overwrite whatever is currently
+ // checked out. See T13280.
+
$future = $repository->getRemoteCommandFuture(
- 'fetch --prune -- %P %Ls',
+ 'fetch --prune --update-head-ok -- %P %Ls',
$repository->getRemoteURIEnvelope(),
$fetch_rules);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 13, 8:58 AM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7470956
Default Alt Text
D20450.diff (2 KB)
Attached To
Mode
D20450: Simplify non-bare working copy rules for the new "git fetch" strategy
Attached
Detach File
Event Timeline
Log In to Comment