Skip to content

Commit

Permalink
Delete .git if committing failed
Browse files Browse the repository at this point in the history
  • Loading branch information
gaearon committed Jan 21, 2018
1 parent 7f8e93a commit ee90d7c
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions packages/react-scripts/scripts/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const spawn = require('react-dev-utils/crossSpawn');
const { defaultBrowsers } = require('react-dev-utils/browsersHelper');
const os = require('os');

function insideGitRepository() {
function isInGitRepository() {
try {
execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
return true;
Expand All @@ -31,7 +31,7 @@ function insideGitRepository() {
}
}

function insideMercurialRepository() {
function isInMercurialRepository() {
try {
execSync('hg --cwd . root', { stdio: 'ignore' });
return true;
Expand All @@ -40,22 +40,36 @@ function insideMercurialRepository() {
}
}

function tryGitInit() {
function tryGitInit(appPath) {
let didInit = false;
try {
execSync('git --version', { stdio: 'ignore' });

if (insideGitRepository() || insideMercurialRepository()) {
if (isInGitRepository() || isInMercurialRepository()) {
return false;
}

execSync('git init', { stdio: 'ignore' });
didInit = true;

execSync('git add -A', { stdio: 'ignore' });
execSync('git commit -m "Initial commit from Create React App"', {
stdio: 'ignore',
});

return true;
} catch (e) {
if (didInit) {
// If we successfully initialized but couldn't commit,
// maybe the commit author config is not set.
// In the future, we might supply our own committer
// like Ember CLI does, but for now, let's just
// remove the Git files to avoid a half-done state.
try {
// unlinkSync() doesn't work on directories.
fs.removeSync(path.join(appPath, '.git'));
} catch (removeErr) {
// Ignore.
}
}
return false;
}
}
Expand Down Expand Up @@ -172,7 +186,7 @@ module.exports = function(
}
}

if (tryGitInit()) {
if (tryGitInit(appPath)) {
console.log();
console.log('Initialized a git repository.');
}
Expand Down

0 comments on commit ee90d7c

Please sign in to comment.