Thread (12 messages) 12 messages, 2 authors, 2020-05-02

Re: [PATCH v4 4/4] gitfaq: fetching and pulling a repository

From: Elijah Newren <hidden>
Date: 2020-05-02 19:00:51

Hi Shourya,

On Fri, May 1, 2020 at 11:57 PM Shourya Shukla
[off-list ref] wrote:
On 29/04 08:56, Elijah Newren wrote:
quoted
quoted
+[[fetching-and-pulling]]
+How do I know if I want to do a fetch or a pull?::
+       A fetch brings in the latest changes made upstream (i.e., the
+       remote repository we are working on). This allows us to inspect
+       the changes made upstream and integrate all those changes (if
+       and only if we want to) or only cherry pick certain changes.
+       Fetching does not have any immediate effects on the local
+       repository.
Maybe change that last sentence to "Fetching does not modify the
current branch"?  The local repository certainly gets bigger, and the
remote tracking branches are updated as well as their reflogs, and it
might trigger a gc, all of which sound like immediate effects to me.
I meant changes in terms of the user's code. Yep you are right, I need
to be precise here.
quoted
quoted
+
+       A pull is a wrapper for a fetch and merge. This means that doing
...for a fetch and merge or a fetch and rebase.  This means...
quoted
+       a `git pull` will not only fetch the changes made upstream but
+       integrate them as well with our local repository. The merge may
...with our current branch.  The merge or rebase...
quoted
+       go smoothly or have merge conflicts depending on the case. A pull
+       does not allow you to review any changes made upstream but rather
+       merge those changes on their own.
I don't understand this last sentence.  You can definitely review
changes made upstream after a pull; e.g. git log @{u}@{1}..@{u}
I meant that the pull will apply the changes right away and one does not
get the chance to review what is being applied before it has been
applied (something a fetch does). I need to be more clear here,
understood.
quoted
quoted
++
+This is the reason why it is sometimes advised to fetch the changes
+first and then merge them accordingly because not every change might
+be of utility to the user.
I don't understand the purpose of this paragraph.
I intended to emphasise the difference between a fetch and a pull; the
fact that fetch just brings in the changes from the remote and doesnot
apply them to our code/files right away, while a pull does so.
So, perhaps we can shorten all three paragraphs to something like the following?

A fetch stores a copy of the latest changes from the remote
repository, without modifying the working tree or current branch.  You
can then at your leisure inspect, merge, rebase on top of, or ignore
the upstream changes.  A pull consists of a fetch followed immediately
by either a merge or rebase.
Also, a nit but, we are supposed to use 1 SP or 2 SP after a full
stop(.)? In India we use 1 SP, is it different in other countries?
Ah, the never ending spacing debate...

There may be variation country-to-country, but I doubt it's country
specific.  It's more a raging debate based on the fact that "official"
rules have changed multiple times, old habits die hard, different
contexts exist for different audiences, and various other wrinkles.
("official" needs quotes because it's not clear who the authority on
publishing, writing, or style is.  There are multiple out there.  But
even if you pick a fairly commonly quoted authority, such as the
Chicago manual of style, they've had at least three different rules
for how much space to use after the full stop over time.)

If you use a typesetting program like LaTeX, the amount of space you
use in the source is irrelevant as the target will automatically be
generated with the right amount according to whatever ruleset is in
play (you just need to be careful to specify when periods are used in
abbreviations versus at ends of sentences).  But if you are using a
WYSIWYG document or a plain text document for both generation and
consumption of the information, then some kind of rule is needed.

Fixed width versus proportional fonts also matter.  The two space rule
arose in the age of typewriters, which came about during the era when
larger spaces between sentences was the typesetting rule, and was
translated into a two-space rule.  Many of the one-space rules and
rule changes arose among those assuming everything would be using
variable width fonts[1].  Unless you're crazy[2], source code remains
fixed width and emails on mailing lists like git@vger often are too
(whenever someone sends a table as part of a commit message or just in
discussion, attempting to read it in a proportional font is
impossible; gmail is atrocious and a crime against humanity here but
luckily I can just go over to lore.kernel.org/git to read the emails
in a fixed width font).

There does seem to be emerging consensus among many style guides
(which come from those that just outright assume that variable width
fonts are the only kind that exist anymore) that just one space should
be used, though it appears to be at least partially because one space
is easy for editors to enforce[3]. (Switching from two spaces to one
is a simple search and replace, whereas switching from one space to
two is really hard because you have to know whether a period ends an
abbreviation like "Dr." or ends a sentence.)  The emerging style rules
also exist despite a (recent-ish) study showing that two spaces
slightly aids reading speed[4].

Personally, I still remember using a single space after sentences, and
my dad standing over my shoulder and letting me know that it was WRONG
to do that and that sentences should be followed by two spaces.  25
years later, it's an ingrained habit.  But the fact that I spend most
of my time in an environment that most the style guides presume no
longer exists or is used (namely fixed width fonts, as found with
source code), means that I've got a good argument that the conventions
used back in the days of typewriters are the ones that are actually
correct within my context.  Plus there's actually a scientific study
that just conveniently happens to match my habit, so now I can claim
that I've been right all along these past 25 years; in the end, that's
all that really matters anyway.  ;-)

[1] https://slate.com/technology/2011/01/two-spaces-after-a-period-why-you-should-never-ever-do-it.html
[2] https://twitter.com/rob_pike/status/567476552187641856?lang=en
[3] https://cmosshoptalk.com/2020/03/24/one-space-or-two/
[4] https://link.springer.com/article/10.3758/s13414-018-1527-6
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help