Skip to content

Commit

Permalink
Fix git init race condition (facebook#3877)
Browse files Browse the repository at this point in the history
  • Loading branch information
gaearon authored and akstuhl committed Mar 15, 2018
1 parent 2c28686 commit 2c4fa00
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions packages/react-scripts/scripts/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function insideMercurialRepository() {
}
}

function gitInit() {
function tryGitInit() {
try {
execSync('git --version', { stdio: 'ignore' });

Expand Down Expand Up @@ -114,23 +114,22 @@ module.exports = function(

// Rename gitignore after the fact to prevent npm from renaming it to .npmignore
// See: https://github.com/npm/npm/issues/1862
fs.move(
path.join(appPath, 'gitignore'),
path.join(appPath, '.gitignore'),
[],
err => {
if (err) {
// Append if there's already a `.gitignore` file there
if (err.code === 'EEXIST') {
const data = fs.readFileSync(path.join(appPath, 'gitignore'));
fs.appendFileSync(path.join(appPath, '.gitignore'), data);
fs.unlinkSync(path.join(appPath, 'gitignore'));
} else {
throw err;
}
}
try {
fs.moveSync(
path.join(appPath, 'gitignore'),
path.join(appPath, '.gitignore'),
[]
);
} catch (err) {
// Append if there's already a `.gitignore` file there
if (err.code === 'EEXIST') {
const data = fs.readFileSync(path.join(appPath, 'gitignore'));
fs.appendFileSync(path.join(appPath, '.gitignore'), data);
fs.unlinkSync(path.join(appPath, 'gitignore'));
} else {
throw err;
}
);
}

let command;
let args;
Expand Down Expand Up @@ -173,8 +172,9 @@ module.exports = function(
}
}

if (gitInit()) {
console.log('Initialized git repository');
if (tryGitInit()) {
console.log();
console.log('Initialized a git repository.');
}

// Display the most elegant way to cd.
Expand Down

0 comments on commit 2c4fa00

Please sign in to comment.