Skip to content

Commit 89523f7

Browse files
committed
Fixes #454 - Avoids merge commits for file/change searches
1 parent dae8cfb commit 89523f7

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
66

7+
## [Unreleased]
8+
### Fixed
9+
- Fixes [#454](https://github.com/eamodio/vscode-gitlens/issues/454) - Search for string returns merge commits (unlike raw `git log -S`)
10+
711
## [8.5.2] - 2018-07-20
812
### Fixed
913
- Fixes [#451](https://github.com/eamodio/vscode-gitlens/issues/451) - "apply Changes" has discarded all my changes

src/commands/showCommitSearch.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import { ShowQuickCommitDetailsCommandArgs } from './showQuickCommitDetails';
1212
const searchByRegex = /^([@~=:#])/;
1313
const searchByMap = new Map<string, GitRepoSearchBy>([
1414
['@', GitRepoSearchBy.Author],
15-
['~', GitRepoSearchBy.Changes],
16-
['=', GitRepoSearchBy.ChangedOccurrences],
15+
['~', GitRepoSearchBy.ChangedLines],
16+
['=', GitRepoSearchBy.Changes],
1717
[':', GitRepoSearchBy.Files],
1818
['#', GitRepoSearchBy.Sha]
1919
]);
@@ -65,7 +65,7 @@ export class ShowCommitSearchCommand extends ActiveEditorCachedCommand {
6565
args.search = await window.showInputBox({
6666
value: args.search,
6767
prompt: `Please enter a search string`,
68-
placeHolder: `search by message, author (@<pattern>), files (:<pattern>), commit id (#<sha>), changes (~<pattern>), or changed occurrences (=<string>)`
68+
placeHolder: `search by message, author (@<pattern>), files (:<pattern>), commit id (#<sha>), changes (=<pattern>), changed lines (~<pattern>)`
6969
} as InputBoxOptions);
7070
if (args.search === undefined) {
7171
return args.goBackCommand === undefined ? undefined : args.goBackCommand.execute();
@@ -96,12 +96,12 @@ export class ShowCommitSearchCommand extends ActiveEditorCachedCommand {
9696
searchLabel = `commits with an author matching '${args.search}'`;
9797
break;
9898

99-
case GitRepoSearchBy.Changes:
100-
searchLabel = `commits with changes matching '${args.search}'`;
99+
case GitRepoSearchBy.ChangedLines:
100+
searchLabel = `commits with changed lines matching '${args.search}'`;
101101
break;
102102

103-
case GitRepoSearchBy.ChangedOccurrences:
104-
searchLabel = `commits with changed occurrences matching '${args.search}'`;
103+
case GitRepoSearchBy.Changes:
104+
searchLabel = `commits with changes matching '${args.search}'`;
105105
break;
106106

107107
case GitRepoSearchBy.Files:

src/git/git.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ export class Git {
535535
}
536536

537537
static log_search(repoPath: string, search: string[] = [], options: { maxCount?: number } = {}) {
538-
const params = [...defaultLogParams, '-M', '-m', '-i'];
538+
const params = [...defaultLogParams];
539539
if (options.maxCount) {
540540
params.push(`-n${options.maxCount}`);
541541
}

src/gitService.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ const RepoSearchWarnings = {
6969

7070
export enum GitRepoSearchBy {
7171
Author = 'author',
72-
ChangedOccurrences = 'changed-occurrences',
72+
ChangedLines = 'changed-lines',
7373
Changes = 'changes',
7474
Files = 'files',
7575
Message = 'message',
@@ -1151,22 +1151,25 @@ export class GitService extends Disposable {
11511151
let searchArgs: string[] | undefined = undefined;
11521152
switch (searchBy) {
11531153
case GitRepoSearchBy.Author:
1154-
searchArgs = [`--author=${search}`];
1154+
searchArgs = ['-m', '-M', '--all', '--full-history', '-i', `--author=${search}`];
11551155
break;
1156-
case GitRepoSearchBy.ChangedOccurrences:
1157-
searchArgs = [`-S${search}`, '--pickaxe-regex'];
1156+
case GitRepoSearchBy.ChangedLines:
1157+
searchArgs = ['-M', '--all', '--full-history', '-i', `-G${search}`];
11581158
break;
11591159
case GitRepoSearchBy.Changes:
1160-
searchArgs = [`-G${search}`];
1160+
searchArgs = ['-M', '--all', '--full-history', '-i', '--pickaxe-regex', `-S${search}`];
11611161
break;
11621162
case GitRepoSearchBy.Files:
1163-
searchArgs = [`--`, `${search}`];
1163+
searchArgs = ['-M', '--all', '--full-history', '-i', `--`, `${search}`];
11641164
break;
11651165
case GitRepoSearchBy.Message:
1166-
searchArgs = search ? [`--grep=${search}`] : [];
1166+
searchArgs = ['-m', '-M', '--all', '--full-history'];
1167+
if (search) {
1168+
searchArgs.push(`--grep=${search}`);
1169+
}
11671170
break;
11681171
case GitRepoSearchBy.Sha:
1169-
searchArgs = [search];
1172+
searchArgs = [`-m`, '-M', search];
11701173
maxCount = 1;
11711174
break;
11721175
}

0 commit comments

Comments
 (0)