threads / patch / 51579

patchFix two documentation typos

Subject: [PATCH 0/1] Fix two documentation typos

## tl;dr

5 messages between Aug 3, 2019 and Aug 5, 2019. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Mark Rushakoff via GitGitGadget· Aug 3, 2019, 05:33 UTC · lore
I noticed a couple typos while reading through some manpages. 
First was "...if it is does not..." which just contained an extraneous "is".

Then I noticed a "can not" and updated that and other occurrences in Documentation to cannot. The glossary sentence with "can not" was "Consequently, an object can not be changed." To me, that reads like "it is permissible to not change an object, but it is possible that an object may be changed." Switching to "cannot" makes a stronger assertion that it is impossible to change an object.

There are also two error messages, "can not move directory into itself" and "Can not do reflog for '%s': %s\n", which I chose to not modify in this patch. I am happy to s/an not/annot/ those as a separate change if it is acceptable to change the wording on an error message like that.

Mark Rushakoff (1):
  doc: typo: s/can not/cannot/ and s/is does/does/
 Documentation/config/transfer.txt             | 2 +-
 Documentation/git-cvsserver.txt               | 2 +-
 Documentation/git-fetch.txt                   | 4 ++--
 Documentation/git-pull.txt                    | 2 +-
 Documentation/glossary-content.txt            | 2 +-
 Documentation/technical/api-ref-iteration.txt | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)
base-commit: 7c20df84bd21ec0215358381844274fa10515017
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-304%2Fmark-rushakoff%2Fdocs-typofix-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-304/mark-rushakoff/docs-typofix-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/304
-- 
gitgitgadget
Mark Rushakoff via GitGitGadget· Aug 3, 2019, 05:33 UTC · re: Mark Rushakoff via GitGitGadget · lore

[PATCH 1/1] doc: typo: s/can not/cannot/ and s/is does/does/

From: Mark Rushakoff <mark.rushakoff@gmail.com>

"Can not" suggests one has the option to not do something, whereas "cannot" more strongly suggests something is disallowed or impossible.

Noticed "can not", mistakenly used instead of "cannot" in git help glossary, then ran git grep 'can not' and found many other instances. Only files in the Documentation folder were modified.

'Can not' also occurs in some source code comments and some test assertion messages, and there is an error message and translation "can not move directory into itself" which I may fix and submit separately from the documentation change.

Also noticed and fixed "is does" in git help fetch, but there are no other occurrences of that typo according to git grep.

Signed-off-by: Mark Rushakoff <mark.rushakoff@gmail.com>
---
 Documentation/config/transfer.txt             | 2 +-
 Documentation/git-cvsserver.txt               | 2 +-
 Documentation/git-fetch.txt                   | 4 ++--
 Documentation/git-pull.txt                    | 2 +-
 Documentation/glossary-content.txt            | 2 +-
 Documentation/technical/api-ref-iteration.txt | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)
Show changes to 6 files +7 −7

Documentation/config/transfer.txt, Documentation/git-cvsserver.txt, Documentation/git-fetch.txt, Documentation/git-pull.txt, Documentation/glossary-content.txt, Documentation/technical/api-ref-iteration.txt

diff --git a/Documentation/config/transfer.txt b/Documentation/config/transfer.txt
index 4a5dfe2fc1..f5b6245270 100644
--- a/Documentation/config/transfer.txt
+++ b/Documentation/config/transfer.txt
@@ -17,7 +17,7 @@ linkgit:git-receive-pack[1]. On the fetch side, malformed objects will
 instead be left unreferenced in the repository.
 +
 Due to the non-quarantine nature of the `fetch.fsckObjects`
-implementation it can not be relied upon to leave the object store
+implementation it cannot be relied upon to leave the object store
 clean like `receive.fsckObjects` can.
 +
 As objects are unpacked they're written to the object store, so there
diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index f98b7c6ed7..79e22b1f3a 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -232,7 +232,7 @@ write so it might not be enough to grant the users using
 'git-cvsserver' write access to the database file without granting
 them write access to the directory, too.
 
-The database can not be reliably regenerated in a
+The database cannot be reliably regenerated in a
 consistent form after the branch it is tracking has changed.
 Example: For merged branches, 'git-cvsserver' only tracks
 one branch of development, and after a 'git merge' an
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
index 266d63cf11..5b1909fdf4 100644
--- a/Documentation/git-fetch.txt
+++ b/Documentation/git-fetch.txt
@@ -262,7 +262,7 @@ This updates (or creates, as necessary) branches `pu` and `tmp` in
 the local repository by fetching from the branches (respectively)
 `pu` and `maint` from the remote repository.
 +
-The `pu` branch will be updated even if it is does not fast-forward,
+The `pu` branch will be updated even if it does not fast-forward,
 because it is prefixed with a plus sign; `tmp` will not be.
 
 * Peek at a remote's branch, without configuring the remote in your local
@@ -285,7 +285,7 @@ BUGS
 ----
 Using --recurse-submodules can only fetch new commits in already checked
 out submodules right now. When e.g. upstream added a new submodule in the
-just fetched commits of the superproject the submodule itself can not be
+just fetched commits of the superproject the submodule itself cannot be
 fetched, making it impossible to check out that submodule later without
 having to do a fetch again. This is expected to be fixed in a future Git
 version.
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index a5e9501a0a..dfb901f8b8 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -249,7 +249,7 @@ BUGS
 ----
 Using --recurse-submodules can only fetch new commits in already checked
 out submodules right now. When e.g. upstream added a new submodule in the
-just fetched commits of the superproject the submodule itself can not be
+just fetched commits of the superproject the submodule itself cannot be
 fetched, making it impossible to check out that submodule later without
 having to do a fetch again. This is expected to be fixed in a future Git
 version.
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index 8d38ae6010..090c888335 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -255,7 +255,7 @@ This commit is referred to as a "merge commit", or sometimes just a
 [[def_object]]object::
 	The unit of storage in Git. It is uniquely identified by the
 	<<def_SHA1,SHA-1>> of its contents. Consequently, an
-	object can not be changed.
+	object cannot be changed.
 
 [[def_object_database]]object database::
 	Stores a set of "objects", and an individual <<def_object,object>> is
diff --git a/Documentation/technical/api-ref-iteration.txt b/Documentation/technical/api-ref-iteration.txt
index 46c3d5c355..ad9d019ff9 100644
--- a/Documentation/technical/api-ref-iteration.txt
+++ b/Documentation/technical/api-ref-iteration.txt
@@ -54,7 +54,7 @@ this:
 do not do this you will get an error for each ref that it does not point
 to a valid object.
 
-Note: As a side-effect of this you can not safely assume that all
+Note: As a side-effect of this you cannot safely assume that all
 objects you lookup are available in superproject. All submodule objects
 will be available the same way as the superprojects objects.
 
-- 
gitgitgadget
Junio C Hamano· Aug 3, 2019, 14:48 UTC · re: Mark Rushakoff via GitGitGadget · lore

Re: [PATCH 0/1] Fix two documentation typos

"Mark Rushakoff via GitGitGadget" <gitgitgadget@gmail.com> writes:
> I noticed a couple typos while reading through some manpages. 
>
> First was "...if it is does not..." which just contained an extraneous "is".
Thanks.
> Then I noticed a "can not" and updated that and other occurrences in
> Documentation to cannot. The glossary sentence with "can not" was
> "Consequently, an object can not be changed." To me, that reads like "it is

Hmph, I am not a native speaker, but I have to say that this is the first time I heard that "I can not drive" to mean "I have a choice of not driving (even though I am capable of driving)".

Jeff King· Aug 3, 2019, 23:59 UTC · re: Junio C Hamano · lore

Re: [PATCH 0/1] Fix two documentation typos

On Sat, Aug 03, 2019 at 07:48:20AM -0700, Junio C Hamano wrote:
Show 7 quoted lines
> > Then I noticed a "can not" and updated that and other occurrences in
> > Documentation to cannot. The glossary sentence with "can not" was
> > "Consequently, an object can not be changed." To me, that reads like "it is
> 
> Hmph, I am not a native speaker, but I have to say that this is the
> first time I heard that "I can not drive" to mean "I have a choice
> of not driving (even though I am capable of driving)".

I think in writing I would assume that "can not" is "unable to" (and a brief skim of online resources indicates they have equivalent meanings). But colloquially, I might say something like: "I can _not_ put mushrooms in the soup if you'd prefer" (where the underscores indicate an emphasis I'd give when speaking).

So I don't find it overly ambiguous, but I think there's no reason not to prefer "cannot".

That said, I think in many error messages, "unable to" is often better (and we already use it quite frequently). This one (that Mark mentioned but didn't change in this patch) is especially bad:

  $ git grep -in 'can not' '*.c' | head -1
  builtin/checkout.c:834: fprintf(stderr, _("Can not do reflog for '%s': %s\n"),

because of the vague "do". Maybe "unable to create reflog for '%s': %s'" would be better. Also, why isn't this an error()?

The other one he mentioned:
  $ git --no-pager grep -B2 -A3 'can not' builtin/mv.c
  builtin/mv.c-		else if (!strncmp(src, dst, length) &&
  builtin/mv.c-				(dst[length] == 0 || dst[length] == '/')) {
  builtin/mv.c:			bad = _("can not move directory into itself");
  builtin/mv.c-		} else if ((src_is_dir = S_ISDIR(st.st_mode))
  builtin/mv.c-				&& lstat(dst, &st) == 0)
  builtin/mv.c-			bad = _("cannot move directory over file");

is rather egregious as the message just below uses "cannot". And here "cannot" makes more sense to me than "unable to", as we did not try a thing that failed; it is literally something that one cannot do at all, because it does not make sense. So it is Git saying "you cannot do this", not "I was unable to do this". :)

-Peff
Junio C Hamano· Aug 5, 2019, 17:04 UTC · re: Jeff King · lore

Re: [PATCH 0/1] Fix two documentation typos

Jeff King <peff@peff.net> writes:
Show 15 quoted lines
> On Sat, Aug 03, 2019 at 07:48:20AM -0700, Junio C Hamano wrote:
>
>> > Then I noticed a "can not" and updated that and other occurrences in
>> > Documentation to cannot. The glossary sentence with "can not" was
>> > "Consequently, an object can not be changed." To me, that reads like "it is
>> 
>> Hmph, I am not a native speaker, but I have to say that this is the
>> first time I heard that "I can not drive" to mean "I have a choice
>> of not driving (even though I am capable of driving)".
> ...
> That said, I think in many error messages, "unable to" is often better
> (and we already use it quite frequently).
> ...
> ... So it is Git saying "you cannot do this", not "I was unable to
> do this". :)

Thanks. In any case, none of the s/can not/cannot/ in Mark's patch is making anything worse (the only case I can think of that a blind search-and-replace would break would be a phrase like "I can not only do X but...", but the none of the ones Mark spotted is like that), so let's take the patch as-is for now.

← back to recent threads