diff --git a/common/changes/@microsoft/rush/sennyeya-blobless-clone_2025-07-23-12-58.json b/common/changes/@microsoft/rush/sennyeya-blobless-clone_2025-07-23-12-58.json new file mode 100644 index 00000000000..8dc2cc125b4 --- /dev/null +++ b/common/changes/@microsoft/rush/sennyeya-blobless-clone_2025-07-23-12-58.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Improve performance for publishing on filtered clones.", + "type": "none", + "packageName": "@microsoft/rush" + } + ], + "packageName": "@microsoft/rush", + "email": "aramissennyeydd@users.noreply.github.com" +} \ No newline at end of file diff --git a/libraries/rush-lib/src/cli/actions/VersionAction.ts b/libraries/rush-lib/src/cli/actions/VersionAction.ts index b9300c30871..128864955d7 100644 --- a/libraries/rush-lib/src/cli/actions/VersionAction.ts +++ b/libraries/rush-lib/src/cli/actions/VersionAction.ts @@ -280,14 +280,14 @@ export class VersionAction extends BaseRushAction { } if (changeLogUpdated || packageJsonUpdated) { - await publishGit.pushAsync(tempBranch, !this._ignoreGitHooksParameter.value); + await publishGit.pushAsync(tempBranch, !this._ignoreGitHooksParameter.value, false); // Now merge to target branch. await publishGit.fetchAsync(); await publishGit.checkoutAsync(targetBranch); await publishGit.pullAsync(!this._ignoreGitHooksParameter.value); await publishGit.mergeAsync(tempBranch, !this._ignoreGitHooksParameter.value); - await publishGit.pushAsync(targetBranch, !this._ignoreGitHooksParameter.value); + await publishGit.pushAsync(targetBranch, !this._ignoreGitHooksParameter.value, false); await publishGit.deleteBranchAsync(tempBranch, true, !this._ignoreGitHooksParameter.value); } else { // skip commits diff --git a/libraries/rush-lib/src/logic/PublishGit.ts b/libraries/rush-lib/src/logic/PublishGit.ts index ba70185efa1..df0e63d48a8 100644 --- a/libraries/rush-lib/src/logic/PublishGit.ts +++ b/libraries/rush-lib/src/logic/PublishGit.ts @@ -143,7 +143,11 @@ export class PublishGit { ]); } - public async pushAsync(branchName: string | undefined, verify: boolean = false): Promise { + public async pushAsync( + branchName: string | undefined, + verify: boolean = false, + followTags: boolean = true + ): Promise { await PublishUtilities.execCommandAsync( !!this._targetBranch, this._gitPath, @@ -153,7 +157,7 @@ export class PublishGit { 'push', 'origin', `HEAD:${branchName || DUMMY_BRANCH_NAME}`, - '--follow-tags', + ...(followTags ? ['--follow-tags'] : []), '--verbose', ...(verify ? [] : ['--no-verify']) ]