mirror of
https://github.com/flutter/packages.git
synced 2025-08-06 00:42:13 +08:00
[tool] Provide a --base-branch flag (#3322)
[tool] Provide a --base-branch flag
This commit is contained in:
@ -38,7 +38,8 @@ void main() {
|
||||
});
|
||||
|
||||
test('No git diff should result no files changed', () async {
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, 'some base sha');
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseSha: 'some base sha');
|
||||
final List<String> changedFiles = await finder.getChangedFiles();
|
||||
|
||||
expect(changedFiles, isEmpty);
|
||||
@ -49,7 +50,8 @@ void main() {
|
||||
file1/file1.cc
|
||||
file2/file2.cc
|
||||
''';
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, 'some base sha');
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseSha: 'some base sha');
|
||||
final List<String> changedFiles = await finder.getChangedFiles();
|
||||
|
||||
expect(changedFiles, equals(<String>['file1/file1.cc', 'file2/file2.cc']));
|
||||
@ -60,7 +62,8 @@ file2/file2.cc
|
||||
file1/pubspec.yaml
|
||||
file2/file2.cc
|
||||
''';
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, 'some base sha');
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseSha: 'some base sha');
|
||||
final List<String> changedFiles = await finder.getChangedPubSpecs();
|
||||
|
||||
expect(changedFiles, equals(<String>['file1/pubspec.yaml']));
|
||||
@ -73,8 +76,28 @@ file1/pubspec.yaml
|
||||
file2/file2.cc
|
||||
''';
|
||||
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, null);
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir);
|
||||
await finder.getChangedFiles();
|
||||
verify(gitDir.runCommand(
|
||||
<String>['merge-base', '--fork-point', 'FETCH_HEAD', 'HEAD'],
|
||||
throwOnError: false));
|
||||
verify(gitDir.runCommand(
|
||||
<String>['diff', '--name-only', mergeBaseResponse, 'HEAD']));
|
||||
});
|
||||
|
||||
test('uses correct base branch to find base sha if specified', () async {
|
||||
mergeBaseResponse = 'shaqwiueroaaidf12312jnadf123nd';
|
||||
gitDiffResponse = '''
|
||||
file1/pubspec.yaml
|
||||
file2/file2.cc
|
||||
''';
|
||||
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseBranch: 'upstream/main');
|
||||
await finder.getChangedFiles();
|
||||
verify(gitDir.runCommand(
|
||||
<String>['merge-base', '--fork-point', 'upstream/main', 'HEAD'],
|
||||
throwOnError: false));
|
||||
verify(gitDir.runCommand(
|
||||
<String>['diff', '--name-only', mergeBaseResponse, 'HEAD']));
|
||||
});
|
||||
@ -85,7 +108,8 @@ file2/file2.cc
|
||||
file1/pubspec.yaml
|
||||
file2/file2.cc
|
||||
''';
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, customBaseSha);
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseSha: customBaseSha);
|
||||
await finder.getChangedFiles();
|
||||
verify(gitDir
|
||||
.runCommand(<String>['diff', '--name-only', customBaseSha, 'HEAD']));
|
||||
@ -97,7 +121,8 @@ file2/file2.cc
|
||||
file1/pubspec.yaml
|
||||
file2/file2.cc
|
||||
''';
|
||||
final GitVersionFinder finder = GitVersionFinder(gitDir, customBaseSha);
|
||||
final GitVersionFinder finder =
|
||||
GitVersionFinder(gitDir, baseSha: customBaseSha);
|
||||
await finder.getChangedFiles(includeUncommitted: true);
|
||||
// The call should not have HEAD as a final argument like the default diff.
|
||||
verify(gitDir.runCommand(<String>['diff', '--name-only', customBaseSha]));
|
||||
|
Reference in New Issue
Block a user