Skip to content

Commit

Permalink
Ignore .git, .svn and .hg directories (#4906)
Browse files Browse the repository at this point in the history
Fixes #4895
  • Loading branch information
azz committed Jul 29, 2018
1 parent 440ab4f commit a938076
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/cli/util.js
Expand Up @@ -399,10 +399,12 @@ function createIgnorerFromContextOrDie(context) {
}

function eachFilename(context, patterns, callback) {
// The '!./' globs are due to https://github.com/prettier/prettier/issues/2110
const ignoreNodeModules = context.argv["with-node-modules"] !== true;
if (ignoreNodeModules) {
patterns = patterns.concat(["!**/node_modules/**", "!./node_modules/**"]);
}
patterns = patterns.concat(["!**/.{git,svn,hg}/**", "!./.{git,svn,hg}/**"]);

try {
const filePaths = globby
Expand Down
10 changes: 10 additions & 0 deletions tests_integration/__tests__/__snapshots__/ignore-vcs-files.js.snap
@@ -0,0 +1,10 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`ignores files in version control systems (stderr) 1`] = `""`;

exports[`ignores files in version control systems (stdout) 1`] = `
"file.js
"
`;

exports[`ignores files in version control systems (write) 1`] = `Array []`;
Expand Up @@ -72,7 +72,7 @@ directory/nested-directory/nested-directory-file.js
exports[`multiple patterns with non exists pattern (write) 1`] = `Array []`;

exports[`multiple patterns, throw error and exit with non zero code on non existing files (stderr) 1`] = `
"[error] No matching files. Patterns tried: non-existent.js other-non-existent.js !**/node_modules/** !./node_modules/**
"[error] No matching files. Patterns tried: non-existent.js other-non-existent.js !**/node_modules/** !./node_modules/** !**/.{git,svn,hg}/** !./.{git,svn,hg}/**
"
`;

Expand Down
16 changes: 16 additions & 0 deletions tests_integration/__tests__/ignore-vcs-files.js
@@ -0,0 +1,16 @@
"use strict";

const runPrettier = require("../runPrettier");

expect.addSnapshotSerializer(require("../path-serializer"));

describe("ignores files in version control systems", () => {
runPrettier("cli/ignore-vcs-files", [
".svn/file.js",
".hg/file.js",
"file.js",
"-l"
]).test({
status: 1
});
});
1 change: 1 addition & 0 deletions tests_integration/cli/ignore-vcs-files/.hg/file.js
@@ -0,0 +1 @@
'use strict';
2 changes: 2 additions & 0 deletions tests_integration/cli/ignore-vcs-files/.svn/file.js
@@ -0,0 +1,2 @@
/* eslint-disable */
'use strict';
1 change: 1 addition & 0 deletions tests_integration/cli/ignore-vcs-files/file.js
@@ -0,0 +1 @@
'use strict';

0 comments on commit a938076

Please sign in to comment.