isomorphi c - git инициализация репо приводит к повреждению локального репо - PullRequest
0 голосов
/ 30 марта 2020

У меня очень странная проблема. Я создал простейшее из возможных воспроизведений выпуска.

package. json

{
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "isomorphic-git": "^1.3.1",
    "rimraf": "^3.0.2"
  }
}

index. js

const fs = require("fs"),
  git = require("isomorphic-git"),
  rimraf = require("rimraf"),
  path = require("path"),
  http = require("isomorphic-git/http/node");

async function main() {
  const dirPath = path.join(process.cwd(), "small-test-repo");
  const gitPath = path.join(dirPath, ".git");
  const source = path.join(dirPath, "EXAMPLE");
  const dest = path.join(dirPath, "SAMPLE.txt");

  if (fs.existsSync(dirPath)) {
    rimraf.sync(dirPath);
  }
  await git.clone({
    fs,
    http,
    dir: dirPath,
    url: "https://github.com/rtyley/small-test-repo.git"
  });
  rimraf.sync(gitPath);

  fs.renameSync(source, dest);

  await git.init({ fs, dir: dirPath });
  await git.add({ fs, dir: dirPath, filepath: "SAMPLE.txt" });
}

(async () => {
  try {
    await main();
  } catch (e) {
    console.log(e);
  }
})();

После выполнения кода выше если я go в каталог small-test-repo и запускаю git status, происходит самое странное -

On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   EXAMPLE
        new file:   SAMPLE.txt

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    EXAMPLE

К моему недоверию я вижу, что файл EXAMPLE каким-то образом появляется в статусе, даже если папка .git была очищена перед переименованием файла и инициализацией репо git.

Любой, кто проливает свет на это таинственное поведение, навсегда заслужит мою благодарность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...