Major Changes
-
98864c6: Major upgrade to v4. In this version:
- Removed previously available default export, now uses a consistently named
simpleGitexport. - Removed previously deprecated import
simple-git/promise(change to using the mainsimple-gitimport). - Removed legacy
gitPexport (change to using the mainsimpleGitexport).
// v3 - previously supported imports import simpleGit from "simple-git"; import { gitP } from "simple-git"; import simpleGit from "simple-git/promise"; const simpleGit = require("simple-git"); // v4 - consolidates to a single supported import import { simpleGit } from "simple-git"; const { simpleGit } = require("simple-git");
- Prevents the use of abbreviated long-form
gitoptions:
// v3 - allowed the use of unambiguous long-form options git.raw("clone", "--conf=user.name=me", "..."); // v4 - requires full option names, abbreviated option names will now throw a GitConfigurationError git.raw("fetch", "--config=user.name=me", "...");
- Ambient environment variables are filtered before passing into the
gitchild process.
// v3 process.env.FOO = "bar"; process.env.GIT_TEMPLATE_DIR = "./some/path"; simpleGit().raw("clone"); // git child process can see both environment variables // v4 process.env.FOO = "bar"; process.env.GIT_TEMPLATE_DIR = "./some/path"; simpleGit().raw("clone"); // git child process now sees only FOO simpleGit({ // explicitly allow the named environment variable so it can pass through. allowEnvoronment: ["GIT_TEMPLATE_DIR"], // and enable the use of an unsafe behaviour unsafe: { allowUnsafeTemplateDir: true }, });
- Explicitly supplied disallowed environment variables will throw when used.
// v3 used a single opt-in to potential unsafe actiity simpleGit({ unsafe: { allowUnsafeTemplateDir: true } }) .env({ GIT_TEMPLATE_DIR: "./foo" }) .init(); // v4 uses a double opt-in, allow the behaviour and the mechanism simpleGit({ allowEnvoronment: ["GIT_TEMPLATE_DIR"], unsafe: { allowUnsafeTemplateDir: true }, }) .env({ GIT_TEMPLATE_DIR: "./foo" }) .init();
- Removed content deprecated during the v2 to v3 major change
simpleGit.silent()logging is configured through environment variables in thedebugpackagesimpleGit.clearQueue()this has been a noop since v3, switch to using theabortplugin- Accessing parsed properties of a
GitResponseErrorthrough a trailing callback function are available only through theerror.gitproperty (previously properties were also spread onto theerroritself with a deprecation notice).
- Removed previously available default export, now uses a consistently named
Minor Changes
-
98864c6: Support one-shot stdin via
git.input(data)(stringorBuffer).Thanks to @felipecrs for the feature request and initial implementation.
Patch Changes
-
d762810: Add
allowUnsafeExecdetection torebase -xandrebase --exec.Thanks to @gdegrange for the vulnerability report.
-
76f308e: Parse binary rename entries without byte counts in diff summaries.
-
Updated dependencies [c427fba]
-
Updated dependencies [1bb14df]
-
Updated dependencies [dfeb116]
-
Updated dependencies [d762810]
-
Updated dependencies [d762810]
-
Updated dependencies [98864c6]
- @simple-git/argv-parser@2.0.0
- @simple-git/args-pathspec@1.0.4