<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/git-pull.txt, branch v2.33.6</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.33.6</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.33.6'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2021-10-12T20:51:36Z</updated>
<entry>
<title>Merge branch 'en/pull-conflicting-options' into maint</title>
<updated>2021-10-12T20:51:36Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-10-12T20:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b20f67a65939a9c8f43354d70ab6000f615d1804'/>
<id>urn:sha1:b20f67a65939a9c8f43354d70ab6000f615d1804</id>
<content type='text'>
"git pull" had various corner cases that were not well thought out
around its --rebase backend, e.g. "git pull --ff-only" did not stop
but went ahead and rebased when the history on other side is not a
descendant of our history.  The series tries to fix them up.

* en/pull-conflicting-options:
  pull: fix handling of multiple heads
  pull: update docs &amp; code for option compatibility with rebasing
  pull: abort by default when fast-forwarding is not possible
  pull: make --rebase and --no-rebase override pull.ff=only
  pull: since --ff-only overrides, handle it first
  pull: abort if --ff-only is given and fast-forwarding is impossible
  t7601: add tests of interactions with multiple merge heads and config
  t7601: test interaction of merge/rebase/fast-forward flags and options
</content>
</entry>
<entry>
<title>pull: update docs &amp; code for option compatibility with rebasing</title>
<updated>2021-07-22T18:54:30Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2021-07-22T05:04:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=359ff6938990a438b99e95fe36b6b359f3eb9811'/>
<id>urn:sha1:359ff6938990a438b99e95fe36b6b359f3eb9811</id>
<content type='text'>
git-pull.txt includes merge-options.txt, which is written assuming
merges will happen.  git-pull has allowed rebases for many years; update
the documentation to reflect that.

While at it, pass any `--signoff` flag through to the rebase backend too
so that we don't have to document it as merge-specific.  Rebase has
supported the --signoff flag for years now as well.

Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pull: abort by default when fast-forwarding is not possible</title>
<updated>2021-07-22T18:54:29Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2021-07-22T05:04:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=031e2f7ae195069d00d21cde906fce5b0318dbdd'/>
<id>urn:sha1:031e2f7ae195069d00d21cde906fce5b0318dbdd</id>
<content type='text'>
We have for some time shown a long warning when the user does not
specify how to reconcile divergent branches with git pull.  Make it an
error now.

Initial-patch-by: Alex Henrie &lt;alexhenrie24@gmail.com&gt;
Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc: pull: fix rebase=false documentation</title>
<updated>2021-07-21T23:34:06Z</updated>
<author>
<name>Felipe Contreras</name>
<email>felipe.contreras@gmail.com</email>
</author>
<published>2021-07-21T22:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d3236bececc24d4b8ddc736d278ce0d3d5ff12d6'/>
<id>urn:sha1:d3236bececc24d4b8ddc736d278ce0d3d5ff12d6</id>
<content type='text'>
"git pull --rebase=false" means we merge their history into ours, but
it has been described the other way around.

Cc: Stephen Haberman &lt;stephen@exigencecorp.com&gt;
Signed-off-by: Felipe Contreras &lt;felipe.contreras@gmail.com&gt;
[jc: updated the log message]
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'dl/merge-autostash'</title>
<updated>2020-04-29T23:15:27Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-04-29T23:15:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=bf10200871d9e7e1fc9f54aca9b2fe40bc4e4ac7'/>
<id>urn:sha1:bf10200871d9e7e1fc9f54aca9b2fe40bc4e4ac7</id>
<content type='text'>
"git merge" learns the "--autostash" option.

* dl/merge-autostash: (22 commits)
  pull: pass --autostash to merge
  t5520: make test_pull_autostash() accept expect_parent_num
  merge: teach --autostash option
  sequencer: implement apply_autostash_oid()
  sequencer: implement save_autostash()
  sequencer: unlink autostash in apply_autostash()
  sequencer: extract perform_autostash() from rebase
  rebase: generify create_autostash()
  rebase: extract create_autostash()
  reset: extract reset_head() from rebase
  rebase: generify reset_head()
  rebase: use apply_autostash() from sequencer.c
  sequencer: rename stash_sha1 to stash_oid
  sequencer: make apply_autostash() accept a path
  rebase: use read_oneliner()
  sequencer: make read_oneliner() extern
  sequencer: configurably warn on non-existent files
  sequencer: make read_oneliner() accept flags
  sequencer: make file exists check more efficient
  sequencer: stop leaking buf
  ...
</content>
</entry>
<entry>
<title>Merge branch 'dr/doc-recurse-submodules'</title>
<updated>2020-04-28T22:50:01Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-04-28T22:50:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cc908dbc76adea39b2756c1091016e929c66689d'/>
<id>urn:sha1:cc908dbc76adea39b2756c1091016e929c66689d</id>
<content type='text'>
Documentation updates around the "--recurse-submodules" option.

* dr/doc-recurse-submodules:
  doc: --recurse-submodules mostly applies to active submodules
  doc: be more precise on (fetch|push).recurseSubmodules
  doc: explain how to deactivate submodule.recurse completely
  doc: document --recurse-submodules for reset and restore
  doc: list all commands affected by submodule.recurse
</content>
</entry>
<entry>
<title>pull: pass --autostash to merge</title>
<updated>2020-04-10T16:28:02Z</updated>
<author>
<name>Denton Liu</name>
<email>liu.denton@gmail.com</email>
</author>
<published>2020-04-07T14:28:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d9f15d37f1a545305988f6b2bb40de1fbf0049cf'/>
<id>urn:sha1:d9f15d37f1a545305988f6b2bb40de1fbf0049cf</id>
<content type='text'>
Before, `--autostash` only worked with `git pull --rebase`. However, in
the last patch, merge learned `--autostash` as well so there's no reason
why we should have this restriction anymore. Teach pull to pass
`--autostash` to merge, just like it did for rebase.

Signed-off-by: Denton Liu &lt;liu.denton@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc: --recurse-submodules mostly applies to active submodules</title>
<updated>2020-04-06T20:42:43Z</updated>
<author>
<name>Damien Robert</name>
<email>damien.olivier.robert@gmail.com</email>
</author>
<published>2020-04-06T13:57:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=acbfae32a31180d781357028af9aff8928672d4b'/>
<id>urn:sha1:acbfae32a31180d781357028af9aff8928672d4b</id>
<content type='text'>
The documentation refers to "initialized" or "populated" submodules,
to explain which submodules are affected by '--recurse-submodules', but
the real terminology here is 'active' submodules. Update the
documentation accordingly.

Some terminology:
- Active is defined in gitsubmodules(7), it only involves the
  configuration variables 'submodule.active', 'submodule.&lt;name&gt;.active'
  and 'submodule.&lt;name&gt;.url'. The function
  submodule.c::is_submodule_active checks that a submodule is active.
- Populated means that the submodule's working tree is present (and the
  gitfile correctly points to the submodule repository), i.e. either the
  superproject was cloned with ` --recurse-submodules`, or the user ran
  `git submodule update --init`, or `git submodule init [&lt;path&gt;]` and
  `git submodule update [&lt;path&gt;]` separately which populated the
  submodule working tree. This does not involve the 3 configuration
  variables above.
- Initialized (at least in the context of the man pages involved in this
  patch) means both "populated" and "active" as defined above, i.e. what
  `git submodule update --init` does.

The --recurse-submodules option mostly affects active submodules. An
exception is `git fetch` where the option affects populated submodules.
As a consequence, in `git pull --recurse-submodules` the fetch affects
populated submodules, but the resulting working tree update only affects
active submodules.

In the documentation of `git-pull`, let's distinguish between the
fetching part which affects populated submodules, and the updating of
worktrees, which only affects active submodules.

Signed-off-by: Damien Robert &lt;damien.olivier.robert+git@gmail.com&gt;
Helped-by: Philippe Blain &lt;levraiphilippeblain@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc: be more precise on (fetch|push).recurseSubmodules</title>
<updated>2020-04-06T20:42:43Z</updated>
<author>
<name>Damien Robert</name>
<email>damien.olivier.robert@gmail.com</email>
</author>
<published>2020-04-06T13:57:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4da9e99e6eaab24ef86c44642b0692669adacfeb'/>
<id>urn:sha1:4da9e99e6eaab24ef86c44642b0692669adacfeb</id>
<content type='text'>
The default value also depends on the value of submodule.recurse.
Use this opportunity to correct some grammar mistakes in
Documentation/config/fetch.txt signaled by Robert P. J. Day.

Also mention `fetch.recurseSubmodules` in fetch-options.txt. In
git-push.txt, `push.recurseSubmodules` is implicitly mentioned (by
explaining how to disable it), so no need to add it there.

Lastly add a link to `git-fetch` in `git-pull.txt` to explain the
meaning of `--recurse-submodules` there.

Signed-off-by: Damien Robert &lt;damien.olivier.robert+git@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pull doc: correct outdated description of an example</title>
<updated>2020-04-05T22:00:04Z</updated>
<author>
<name>Philippe Blain</name>
<email>levraiphilippeblain@gmail.com</email>
</author>
<published>2020-04-05T15:50:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a44088435c37ccf91920ab18076db888cff1fc76'/>
<id>urn:sha1:a44088435c37ccf91920ab18076db888cff1fc76</id>
<content type='text'>
Since f269048754 (fetch: opportunistically update tracking refs,
2013-05-11), the underlying `git fetch` in `git pull &lt;remote&gt; &lt;branch&gt;`
updates the configured remote-tracking branch for &lt;branch&gt;.

However, an example in the 'Examples' section of the `git pull`
documentation still states that this is not the case.

Correct the description of this example.

Signed-off-by: Philippe Blain &lt;levraiphilippeblain@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
