isomorphic-git 1.12.0 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,8 @@
1
1
  [
2
2
  "HeadlessChrome 0.0.0 (Linux 0.0.0)",
3
- "X Firefox 96.0.0 (Ubuntu 0.0.0)",
3
+ "Firefox 97.0.0 (Ubuntu 0.0.0)",
4
4
  "Chrome Mobile 96.0.4664 (Android 0.0.0)",
5
5
  "Chrome 79.0.3945 (Windows 10 0.0.0)",
6
6
  "Safari 13.1.0 (Mac OS X 10.15.4)",
7
- "Mobile Safari 13.0.0 (iOS 13.0.0)",
8
- "Firefox 96.0.0 (Ubuntu 0.0.0)"
7
+ "Mobile Safari 13.0.0 (iOS 13.0.0)"
9
8
  ]
package/index.cjs CHANGED
@@ -6873,8 +6873,8 @@ function filterCapabilities(server, client) {
6873
6873
 
6874
6874
  const pkg = {
6875
6875
  name: 'isomorphic-git',
6876
- version: '1.12.0',
6877
- agent: 'git/isomorphic-git@1.12.0',
6876
+ version: '1.13.1',
6877
+ agent: 'git/isomorphic-git@1.13.1',
6878
6878
  };
6879
6879
 
6880
6880
  class FIFO {
@@ -8644,6 +8644,7 @@ async function mergeBlobs({
8644
8644
  * @param {string} args.gitdir
8645
8645
  * @param {string} [args.ours]
8646
8646
  * @param {string} args.theirs
8647
+ * @param {boolean} args.fastForward
8647
8648
  * @param {boolean} args.fastForwardOnly
8648
8649
  * @param {boolean} args.dryRun
8649
8650
  * @param {boolean} args.noUpdateBranch
@@ -8670,6 +8671,7 @@ async function _merge({
8670
8671
  gitdir,
8671
8672
  ours,
8672
8673
  theirs,
8674
+ fastForward = true,
8673
8675
  fastForwardOnly = false,
8674
8676
  dryRun = false,
8675
8677
  noUpdateBranch = false,
@@ -8720,7 +8722,7 @@ async function _merge({
8720
8722
  alreadyMerged: true,
8721
8723
  }
8722
8724
  }
8723
- if (baseOid === ourOid) {
8725
+ if (fastForward && baseOid === ourOid) {
8724
8726
  if (!dryRun && !noUpdateBranch) {
8725
8727
  await GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid });
8726
8728
  }
@@ -8794,6 +8796,7 @@ async function _merge({
8794
8796
  * @param {string} [args.remoteRef]
8795
8797
  * @param {string} [args.corsProxy]
8796
8798
  * @param {boolean} args.singleBranch
8799
+ * @param {boolean} args.fastForward
8797
8800
  * @param {boolean} args.fastForwardOnly
8798
8801
  * @param {Object<string, string>} [args.headers]
8799
8802
  * @param {Object} args.author
@@ -8826,6 +8829,7 @@ async function _pull({
8826
8829
  url,
8827
8830
  remote,
8828
8831
  remoteRef,
8832
+ fastForward,
8829
8833
  fastForwardOnly,
8830
8834
  corsProxy,
8831
8835
  singleBranch,
@@ -8870,6 +8874,7 @@ async function _pull({
8870
8874
  gitdir,
8871
8875
  ours: ref,
8872
8876
  theirs: fetchHead,
8877
+ fastForward,
8873
8878
  fastForwardOnly,
8874
8879
  message: `Merge ${fetchHeadDescription}`,
8875
8880
  author,
@@ -10849,6 +10854,7 @@ async function log({
10849
10854
  * @param {string} [args.gitdir=join(dir,'.git')] - [required] The [git directory](dir-vs-gitdir.md) path
10850
10855
  * @param {string} [args.ours] - The branch receiving the merge. If undefined, defaults to the current branch.
10851
10856
  * @param {string} args.theirs - The branch to be merged
10857
+ * @param {boolean} [args.fastForward = true] - If false, create a merge commit in all cases.
10852
10858
  * @param {boolean} [args.fastForwardOnly = false] - If true, then non-fast-forward merges will throw an Error instead of performing a merge.
10853
10859
  * @param {boolean} [args.dryRun = false] - If true, simulates a merge so you can test whether it would succeed.
10854
10860
  * @param {boolean} [args.noUpdateBranch = false] - If true, does not update the branch pointer after creating the commit.
@@ -10886,6 +10892,7 @@ async function merge({
10886
10892
  gitdir = join(dir, '.git'),
10887
10893
  ours,
10888
10894
  theirs,
10895
+ fastForward = true,
10889
10896
  fastForwardOnly = false,
10890
10897
  dryRun = false,
10891
10898
  noUpdateBranch = false,
@@ -10903,7 +10910,9 @@ async function merge({
10903
10910
  const fs = new FileSystem(_fs);
10904
10911
 
10905
10912
  const author = await normalizeAuthorObject({ fs, gitdir, author: _author });
10906
- if (!author && !fastForwardOnly) throw new MissingNameError('author')
10913
+ if (!author && (!fastForwardOnly || !fastForward)) {
10914
+ throw new MissingNameError('author')
10915
+ }
10907
10916
 
10908
10917
  const committer = await normalizeCommitterObject({
10909
10918
  fs,
@@ -10911,7 +10920,7 @@ async function merge({
10911
10920
  author,
10912
10921
  committer: _committer,
10913
10922
  });
10914
- if (!committer && !fastForwardOnly) {
10923
+ if (!committer && (!fastForwardOnly || !fastForward)) {
10915
10924
  throw new MissingNameError('committer')
10916
10925
  }
10917
10926
 
@@ -10921,6 +10930,7 @@ async function merge({
10921
10930
  gitdir,
10922
10931
  ours,
10923
10932
  theirs,
10933
+ fastForward,
10924
10934
  fastForwardOnly,
10925
10935
  dryRun,
10926
10936
  noUpdateBranch,
@@ -11125,6 +11135,7 @@ async function packObjects({
11125
11135
  * @param {string} [args.remoteRef] - (Added in 1.1.0) The name of the branch on the remote to fetch. By default this is the configured remote tracking branch.
11126
11136
  * @param {string} [args.corsProxy] - Optional [CORS proxy](https://www.npmjs.com/%40isomorphic-git/cors-proxy). Overrides value in repo config.
11127
11137
  * @param {boolean} [args.singleBranch = false] - Instead of the default behavior of fetching all the branches, only fetch a single branch.
11138
+ * @param {boolean} [args.fastForward = true] - If false, only create merge commits.
11128
11139
  * @param {boolean} [args.fastForwardOnly = false] - Only perform simple fast-forward merges. (Don't create merge commits.)
11129
11140
  * @param {Object<string, string>} [args.headers] - Additional headers to include in HTTP requests, similar to git's `extraHeader` config
11130
11141
  * @param {Object} [args.author] - The details about the author.
@@ -11167,6 +11178,7 @@ async function pull({
11167
11178
  url,
11168
11179
  remote,
11169
11180
  remoteRef,
11181
+ fastForward = true,
11170
11182
  fastForwardOnly = false,
11171
11183
  corsProxy,
11172
11184
  singleBranch,
@@ -11208,6 +11220,7 @@ async function pull({
11208
11220
  url,
11209
11221
  remote,
11210
11222
  remoteRef,
11223
+ fastForward,
11211
11224
  fastForwardOnly,
11212
11225
  corsProxy,
11213
11226
  singleBranch,
@@ -13331,27 +13344,37 @@ async function statusMatrix({
13331
13344
  if (!filter(filepath)) return
13332
13345
  }
13333
13346
 
13334
- // For now, just bail on directories
13335
- const headType = head && (await head.type());
13336
- if (headType === 'tree' || headType === 'special') return
13347
+ const [headType, workdirType, stageType] = await Promise.all([
13348
+ head && head.type(),
13349
+ workdir && workdir.type(),
13350
+ stage && stage.type(),
13351
+ ]);
13352
+
13353
+ const isBlob = [headType, workdirType, stageType].includes('blob');
13354
+
13355
+ // For now, bail on directories unless the file is also a blob in another tree
13356
+ if ((headType === 'tree' || headType === 'special') && !isBlob) return
13337
13357
  if (headType === 'commit') return null
13338
13358
 
13339
- const workdirType = workdir && (await workdir.type());
13340
- if (workdirType === 'tree' || workdirType === 'special') return
13359
+ if ((workdirType === 'tree' || workdirType === 'special') && !isBlob)
13360
+ return
13341
13361
 
13342
- const stageType = stage && (await stage.type());
13343
13362
  if (stageType === 'commit') return null
13344
- if (stageType === 'tree' || stageType === 'special') return
13363
+ if ((stageType === 'tree' || stageType === 'special') && !isBlob) return
13345
13364
 
13346
- // Figure out the oids, using the staged oid for the working dir oid if the stats match.
13347
- const headOid = head ? await head.oid() : undefined;
13348
- const stageOid = stage ? await stage.oid() : undefined;
13365
+ // Figure out the oids for files, using the staged oid for the working dir oid if the stats match.
13366
+ const headOid = headType === 'blob' ? await head.oid() : undefined;
13367
+ const stageOid = stageType === 'blob' ? await stage.oid() : undefined;
13349
13368
  let workdirOid;
13350
- if (!head && workdir && !stage) {
13369
+ if (
13370
+ headType !== 'blob' &&
13371
+ workdirType === 'blob' &&
13372
+ stageType !== 'blob'
13373
+ ) {
13351
13374
  // We don't actually NEED the sha. Any sha will do
13352
13375
  // TODO: update this logic to handle N trees instead of just 3.
13353
13376
  workdirOid = '42';
13354
- } else if (workdir) {
13377
+ } else if (workdirType === 'blob') {
13355
13378
  workdirOid = await workdir.oid();
13356
13379
  }
13357
13380
  const entry = [undefined, headOid, workdirOid, stageOid];
package/index.d.ts CHANGED
@@ -2097,6 +2097,7 @@ export function log({ fs, dir, gitdir, filepath, ref, depth, since, force, follo
2097
2097
  * @param {string} [args.gitdir=join(dir,'.git')] - [required] The [git directory](dir-vs-gitdir.md) path
2098
2098
  * @param {string} [args.ours] - The branch receiving the merge. If undefined, defaults to the current branch.
2099
2099
  * @param {string} args.theirs - The branch to be merged
2100
+ * @param {boolean} [args.fastForward = true] - If false, create a merge commit in all cases.
2100
2101
  * @param {boolean} [args.fastForwardOnly = false] - If true, then non-fast-forward merges will throw an Error instead of performing a merge.
2101
2102
  * @param {boolean} [args.dryRun = false] - If true, simulates a merge so you can test whether it would succeed.
2102
2103
  * @param {boolean} [args.noUpdateBranch = false] - If true, does not update the branch pointer after creating the commit.
@@ -2127,13 +2128,14 @@ export function log({ fs, dir, gitdir, filepath, ref, depth, since, force, follo
2127
2128
  * console.log(m)
2128
2129
  *
2129
2130
  */
2130
- export function merge({ fs: _fs, onSign, dir, gitdir, ours, theirs, fastForwardOnly, dryRun, noUpdateBranch, message, author: _author, committer: _committer, signingKey, cache, }: {
2131
+ export function merge({ fs: _fs, onSign, dir, gitdir, ours, theirs, fastForward, fastForwardOnly, dryRun, noUpdateBranch, message, author: _author, committer: _committer, signingKey, cache, }: {
2131
2132
  fs: CallbackFsClient | PromiseFsClient;
2132
2133
  onSign?: SignCallback;
2133
2134
  dir?: string;
2134
2135
  gitdir?: string;
2135
2136
  ours?: string;
2136
2137
  theirs: string;
2138
+ fastForward?: boolean;
2137
2139
  fastForwardOnly?: boolean;
2138
2140
  dryRun?: boolean;
2139
2141
  noUpdateBranch?: boolean;
@@ -2210,6 +2212,7 @@ export function packObjects({ fs, dir, gitdir, oids, write, cache, }: {
2210
2212
  * @param {string} [args.remoteRef] - (Added in 1.1.0) The name of the branch on the remote to fetch. By default this is the configured remote tracking branch.
2211
2213
  * @param {string} [args.corsProxy] - Optional [CORS proxy](https://www.npmjs.com/%40isomorphic-git/cors-proxy). Overrides value in repo config.
2212
2214
  * @param {boolean} [args.singleBranch = false] - Instead of the default behavior of fetching all the branches, only fetch a single branch.
2215
+ * @param {boolean} [args.fastForward = true] - If false, only create merge commits.
2213
2216
  * @param {boolean} [args.fastForwardOnly = false] - Only perform simple fast-forward merges. (Don't create merge commits.)
2214
2217
  * @param {Object<string, string>} [args.headers] - Additional headers to include in HTTP requests, similar to git's `extraHeader` config
2215
2218
  * @param {Object} [args.author] - The details about the author.
@@ -2238,7 +2241,7 @@ export function packObjects({ fs, dir, gitdir, oids, write, cache, }: {
2238
2241
  * console.log('done')
2239
2242
  *
2240
2243
  */
2241
- export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSuccess, onAuthFailure, dir, gitdir, ref, url, remote, remoteRef, fastForwardOnly, corsProxy, singleBranch, headers, author: _author, committer: _committer, signingKey, cache, }: {
2244
+ export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSuccess, onAuthFailure, dir, gitdir, ref, url, remote, remoteRef, fastForward, fastForwardOnly, corsProxy, singleBranch, headers, author: _author, committer: _committer, signingKey, cache, }: {
2242
2245
  fs: CallbackFsClient | PromiseFsClient;
2243
2246
  http: HttpClient;
2244
2247
  onProgress?: ProgressCallback;
@@ -2254,6 +2257,7 @@ export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSucce
2254
2257
  remoteRef?: string;
2255
2258
  corsProxy?: string;
2256
2259
  singleBranch?: boolean;
2260
+ fastForward?: boolean;
2257
2261
  fastForwardOnly?: boolean;
2258
2262
  headers?: {
2259
2263
  [x: string]: string;
package/index.js CHANGED
@@ -6867,8 +6867,8 @@ function filterCapabilities(server, client) {
6867
6867
 
6868
6868
  const pkg = {
6869
6869
  name: 'isomorphic-git',
6870
- version: '1.12.0',
6871
- agent: 'git/isomorphic-git@1.12.0',
6870
+ version: '1.13.1',
6871
+ agent: 'git/isomorphic-git@1.13.1',
6872
6872
  };
6873
6873
 
6874
6874
  class FIFO {
@@ -8638,6 +8638,7 @@ async function mergeBlobs({
8638
8638
  * @param {string} args.gitdir
8639
8639
  * @param {string} [args.ours]
8640
8640
  * @param {string} args.theirs
8641
+ * @param {boolean} args.fastForward
8641
8642
  * @param {boolean} args.fastForwardOnly
8642
8643
  * @param {boolean} args.dryRun
8643
8644
  * @param {boolean} args.noUpdateBranch
@@ -8664,6 +8665,7 @@ async function _merge({
8664
8665
  gitdir,
8665
8666
  ours,
8666
8667
  theirs,
8668
+ fastForward = true,
8667
8669
  fastForwardOnly = false,
8668
8670
  dryRun = false,
8669
8671
  noUpdateBranch = false,
@@ -8714,7 +8716,7 @@ async function _merge({
8714
8716
  alreadyMerged: true,
8715
8717
  }
8716
8718
  }
8717
- if (baseOid === ourOid) {
8719
+ if (fastForward && baseOid === ourOid) {
8718
8720
  if (!dryRun && !noUpdateBranch) {
8719
8721
  await GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid });
8720
8722
  }
@@ -8788,6 +8790,7 @@ async function _merge({
8788
8790
  * @param {string} [args.remoteRef]
8789
8791
  * @param {string} [args.corsProxy]
8790
8792
  * @param {boolean} args.singleBranch
8793
+ * @param {boolean} args.fastForward
8791
8794
  * @param {boolean} args.fastForwardOnly
8792
8795
  * @param {Object<string, string>} [args.headers]
8793
8796
  * @param {Object} args.author
@@ -8820,6 +8823,7 @@ async function _pull({
8820
8823
  url,
8821
8824
  remote,
8822
8825
  remoteRef,
8826
+ fastForward,
8823
8827
  fastForwardOnly,
8824
8828
  corsProxy,
8825
8829
  singleBranch,
@@ -8864,6 +8868,7 @@ async function _pull({
8864
8868
  gitdir,
8865
8869
  ours: ref,
8866
8870
  theirs: fetchHead,
8871
+ fastForward,
8867
8872
  fastForwardOnly,
8868
8873
  message: `Merge ${fetchHeadDescription}`,
8869
8874
  author,
@@ -10843,6 +10848,7 @@ async function log({
10843
10848
  * @param {string} [args.gitdir=join(dir,'.git')] - [required] The [git directory](dir-vs-gitdir.md) path
10844
10849
  * @param {string} [args.ours] - The branch receiving the merge. If undefined, defaults to the current branch.
10845
10850
  * @param {string} args.theirs - The branch to be merged
10851
+ * @param {boolean} [args.fastForward = true] - If false, create a merge commit in all cases.
10846
10852
  * @param {boolean} [args.fastForwardOnly = false] - If true, then non-fast-forward merges will throw an Error instead of performing a merge.
10847
10853
  * @param {boolean} [args.dryRun = false] - If true, simulates a merge so you can test whether it would succeed.
10848
10854
  * @param {boolean} [args.noUpdateBranch = false] - If true, does not update the branch pointer after creating the commit.
@@ -10880,6 +10886,7 @@ async function merge({
10880
10886
  gitdir = join(dir, '.git'),
10881
10887
  ours,
10882
10888
  theirs,
10889
+ fastForward = true,
10883
10890
  fastForwardOnly = false,
10884
10891
  dryRun = false,
10885
10892
  noUpdateBranch = false,
@@ -10897,7 +10904,9 @@ async function merge({
10897
10904
  const fs = new FileSystem(_fs);
10898
10905
 
10899
10906
  const author = await normalizeAuthorObject({ fs, gitdir, author: _author });
10900
- if (!author && !fastForwardOnly) throw new MissingNameError('author')
10907
+ if (!author && (!fastForwardOnly || !fastForward)) {
10908
+ throw new MissingNameError('author')
10909
+ }
10901
10910
 
10902
10911
  const committer = await normalizeCommitterObject({
10903
10912
  fs,
@@ -10905,7 +10914,7 @@ async function merge({
10905
10914
  author,
10906
10915
  committer: _committer,
10907
10916
  });
10908
- if (!committer && !fastForwardOnly) {
10917
+ if (!committer && (!fastForwardOnly || !fastForward)) {
10909
10918
  throw new MissingNameError('committer')
10910
10919
  }
10911
10920
 
@@ -10915,6 +10924,7 @@ async function merge({
10915
10924
  gitdir,
10916
10925
  ours,
10917
10926
  theirs,
10927
+ fastForward,
10918
10928
  fastForwardOnly,
10919
10929
  dryRun,
10920
10930
  noUpdateBranch,
@@ -11119,6 +11129,7 @@ async function packObjects({
11119
11129
  * @param {string} [args.remoteRef] - (Added in 1.1.0) The name of the branch on the remote to fetch. By default this is the configured remote tracking branch.
11120
11130
  * @param {string} [args.corsProxy] - Optional [CORS proxy](https://www.npmjs.com/%40isomorphic-git/cors-proxy). Overrides value in repo config.
11121
11131
  * @param {boolean} [args.singleBranch = false] - Instead of the default behavior of fetching all the branches, only fetch a single branch.
11132
+ * @param {boolean} [args.fastForward = true] - If false, only create merge commits.
11122
11133
  * @param {boolean} [args.fastForwardOnly = false] - Only perform simple fast-forward merges. (Don't create merge commits.)
11123
11134
  * @param {Object<string, string>} [args.headers] - Additional headers to include in HTTP requests, similar to git's `extraHeader` config
11124
11135
  * @param {Object} [args.author] - The details about the author.
@@ -11161,6 +11172,7 @@ async function pull({
11161
11172
  url,
11162
11173
  remote,
11163
11174
  remoteRef,
11175
+ fastForward = true,
11164
11176
  fastForwardOnly = false,
11165
11177
  corsProxy,
11166
11178
  singleBranch,
@@ -11202,6 +11214,7 @@ async function pull({
11202
11214
  url,
11203
11215
  remote,
11204
11216
  remoteRef,
11217
+ fastForward,
11205
11218
  fastForwardOnly,
11206
11219
  corsProxy,
11207
11220
  singleBranch,
@@ -13325,27 +13338,37 @@ async function statusMatrix({
13325
13338
  if (!filter(filepath)) return
13326
13339
  }
13327
13340
 
13328
- // For now, just bail on directories
13329
- const headType = head && (await head.type());
13330
- if (headType === 'tree' || headType === 'special') return
13341
+ const [headType, workdirType, stageType] = await Promise.all([
13342
+ head && head.type(),
13343
+ workdir && workdir.type(),
13344
+ stage && stage.type(),
13345
+ ]);
13346
+
13347
+ const isBlob = [headType, workdirType, stageType].includes('blob');
13348
+
13349
+ // For now, bail on directories unless the file is also a blob in another tree
13350
+ if ((headType === 'tree' || headType === 'special') && !isBlob) return
13331
13351
  if (headType === 'commit') return null
13332
13352
 
13333
- const workdirType = workdir && (await workdir.type());
13334
- if (workdirType === 'tree' || workdirType === 'special') return
13353
+ if ((workdirType === 'tree' || workdirType === 'special') && !isBlob)
13354
+ return
13335
13355
 
13336
- const stageType = stage && (await stage.type());
13337
13356
  if (stageType === 'commit') return null
13338
- if (stageType === 'tree' || stageType === 'special') return
13357
+ if ((stageType === 'tree' || stageType === 'special') && !isBlob) return
13339
13358
 
13340
- // Figure out the oids, using the staged oid for the working dir oid if the stats match.
13341
- const headOid = head ? await head.oid() : undefined;
13342
- const stageOid = stage ? await stage.oid() : undefined;
13359
+ // Figure out the oids for files, using the staged oid for the working dir oid if the stats match.
13360
+ const headOid = headType === 'blob' ? await head.oid() : undefined;
13361
+ const stageOid = stageType === 'blob' ? await stage.oid() : undefined;
13343
13362
  let workdirOid;
13344
- if (!head && workdir && !stage) {
13363
+ if (
13364
+ headType !== 'blob' &&
13365
+ workdirType === 'blob' &&
13366
+ stageType !== 'blob'
13367
+ ) {
13345
13368
  // We don't actually NEED the sha. Any sha will do
13346
13369
  // TODO: update this logic to handle N trees instead of just 3.
13347
13370
  workdirOid = '42';
13348
- } else if (workdir) {
13371
+ } else if (workdirType === 'blob') {
13349
13372
  workdirOid = await workdir.oid();
13350
13373
  }
13351
13374
  const entry = [undefined, headOid, workdirOid, stageOid];
@@ -2097,6 +2097,7 @@ export function log({ fs, dir, gitdir, filepath, ref, depth, since, force, follo
2097
2097
  * @param {string} [args.gitdir=join(dir,'.git')] - [required] The [git directory](dir-vs-gitdir.md) path
2098
2098
  * @param {string} [args.ours] - The branch receiving the merge. If undefined, defaults to the current branch.
2099
2099
  * @param {string} args.theirs - The branch to be merged
2100
+ * @param {boolean} [args.fastForward = true] - If false, create a merge commit in all cases.
2100
2101
  * @param {boolean} [args.fastForwardOnly = false] - If true, then non-fast-forward merges will throw an Error instead of performing a merge.
2101
2102
  * @param {boolean} [args.dryRun = false] - If true, simulates a merge so you can test whether it would succeed.
2102
2103
  * @param {boolean} [args.noUpdateBranch = false] - If true, does not update the branch pointer after creating the commit.
@@ -2127,13 +2128,14 @@ export function log({ fs, dir, gitdir, filepath, ref, depth, since, force, follo
2127
2128
  * console.log(m)
2128
2129
  *
2129
2130
  */
2130
- export function merge({ fs: _fs, onSign, dir, gitdir, ours, theirs, fastForwardOnly, dryRun, noUpdateBranch, message, author: _author, committer: _committer, signingKey, cache, }: {
2131
+ export function merge({ fs: _fs, onSign, dir, gitdir, ours, theirs, fastForward, fastForwardOnly, dryRun, noUpdateBranch, message, author: _author, committer: _committer, signingKey, cache, }: {
2131
2132
  fs: CallbackFsClient | PromiseFsClient;
2132
2133
  onSign?: SignCallback;
2133
2134
  dir?: string;
2134
2135
  gitdir?: string;
2135
2136
  ours?: string;
2136
2137
  theirs: string;
2138
+ fastForward?: boolean;
2137
2139
  fastForwardOnly?: boolean;
2138
2140
  dryRun?: boolean;
2139
2141
  noUpdateBranch?: boolean;
@@ -2210,6 +2212,7 @@ export function packObjects({ fs, dir, gitdir, oids, write, cache, }: {
2210
2212
  * @param {string} [args.remoteRef] - (Added in 1.1.0) The name of the branch on the remote to fetch. By default this is the configured remote tracking branch.
2211
2213
  * @param {string} [args.corsProxy] - Optional [CORS proxy](https://www.npmjs.com/%40isomorphic-git/cors-proxy). Overrides value in repo config.
2212
2214
  * @param {boolean} [args.singleBranch = false] - Instead of the default behavior of fetching all the branches, only fetch a single branch.
2215
+ * @param {boolean} [args.fastForward = true] - If false, only create merge commits.
2213
2216
  * @param {boolean} [args.fastForwardOnly = false] - Only perform simple fast-forward merges. (Don't create merge commits.)
2214
2217
  * @param {Object<string, string>} [args.headers] - Additional headers to include in HTTP requests, similar to git's `extraHeader` config
2215
2218
  * @param {Object} [args.author] - The details about the author.
@@ -2238,7 +2241,7 @@ export function packObjects({ fs, dir, gitdir, oids, write, cache, }: {
2238
2241
  * console.log('done')
2239
2242
  *
2240
2243
  */
2241
- export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSuccess, onAuthFailure, dir, gitdir, ref, url, remote, remoteRef, fastForwardOnly, corsProxy, singleBranch, headers, author: _author, committer: _committer, signingKey, cache, }: {
2244
+ export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSuccess, onAuthFailure, dir, gitdir, ref, url, remote, remoteRef, fastForward, fastForwardOnly, corsProxy, singleBranch, headers, author: _author, committer: _committer, signingKey, cache, }: {
2242
2245
  fs: CallbackFsClient | PromiseFsClient;
2243
2246
  http: HttpClient;
2244
2247
  onProgress?: ProgressCallback;
@@ -2254,6 +2257,7 @@ export function pull({ fs: _fs, http, onProgress, onMessage, onAuth, onAuthSucce
2254
2257
  remoteRef?: string;
2255
2258
  corsProxy?: string;
2256
2259
  singleBranch?: boolean;
2260
+ fastForward?: boolean;
2257
2261
  fastForwardOnly?: boolean;
2258
2262
  headers?: {
2259
2263
  [x: string]: string;