Skip to content

Commit bb6d7d6

Browse files
authored
Git - handle branch name with incorrect casing (microsoft#184502)
1 parent 30092f4 commit bb6d7d6

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

extensions/git/src/git.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import * as which from 'which';
1212
import { EventEmitter } from 'events';
1313
import * as iconv from '@vscode/iconv-lite-umd';
1414
import * as filetype from 'file-type';
15-
import { assign, groupBy, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent, splitInChunks, Limiter, Versions, isWindows, pathEquals } from './util';
15+
import { assign, groupBy, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent, splitInChunks, Limiter, Versions, isWindows, pathEquals, isMacintosh } from './util';
1616
import { CancellationError, CancellationToken, ConfigurationChangeEvent, LogOutputChannel, Progress, Uri, workspace } from 'vscode';
1717
import { detectEncoding } from './encoding';
1818
import { Ref, RefType, Branch, Remote, ForcePushMode, GitErrorCodes, LogOptions, Change, Status, CommitOptions, RefQuery, InitOptions } from './api/git';
@@ -2352,6 +2352,13 @@ export class Repository {
23522352
args.push('--format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref)');
23532353
}
23542354

2355+
// On Windows and macOS ref names are case insensitive so we add --ignore-case
2356+
// to handle the scenario where the user switched to a branch with incorrect
2357+
// casing
2358+
if (isWindows || isMacintosh) {
2359+
args.push('--ignore-case');
2360+
}
2361+
23552362
if (/^refs\/(head|remotes)\//i.test(name)) {
23562363
args.push(name);
23572364
} else {

0 commit comments

Comments
 (0)