Re: Worktree vs. working copy

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: Worktree vs. working copy

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:52:04

Ramkumar Ramachandra [off-list ref] writes:
Hi Carlos,

Carlos Martín Nieto writes:
quoted
[...]
   $ git grep 'worktree' | wc -l
   412
   $ git grep 'working copy' | grep -v ^git-cvsserver |  wc -l
   32
[...]
You might like to refer to a related discussion [1].

[1]: http://thread.gmane.org/gmane.comp.version-control.git/159287/focus=160083
Sorry, I do not see "working tree" discussion there. The discussion on
that quoted thread was about remote-tracking branches, no?

Historically, we used to say "working tree" and "worktree" more or less
interchangeably, and over time we tried to update the documentation to use
"working tree" consistently, even though the latter is still seen in
places like "GIT_WORK_TREE" environment variable (which will _not_
change).

But as far as I recall, we have never referred to the working tree
controlled by a git repository as "working copy".

Re: Worktree vs. working copy

From: Carlos Martín Nieto <hidden>
Date: 2016-06-15 22:52:04

On Tue, 2011-09-20 at 12:10 -0700, Junio C Hamano wrote:
Ramkumar Ramachandra [off-list ref] writes:
quoted
Hi Carlos,

Carlos Martín Nieto writes:
quoted
[...]
   $ git grep 'worktree' | wc -l
   412
   $ git grep 'working copy' | grep -v ^git-cvsserver |  wc -l
   32
[...]
You might like to refer to a related discussion [1].

[1]: http://thread.gmane.org/gmane.comp.version-control.git/159287/focus=160083
Sorry, I do not see "working tree" discussion there. The discussion on
that quoted thread was about remote-tracking branches, no?

Historically, we used to say "working tree" and "worktree" more or less
interchangeably, and over time we tried to update the documentation to use
"working tree" consistently, even though the latter is still seen in
places like "GIT_WORK_TREE" environment variable (which will _not_
change).

But as far as I recall, we have never referred to the working tree
controlled by a git repository as "working copy".
The config man page has three mentions, diff-lib.c has one,
merge-recursive.c three and perl/Git.pm nine.

This patch covers the documentation and C code. I'll move the perl code
over if you want, but I'm not sure how well maintained or relevant that
part of the codebase is.
--- 8< ---
Subject: [PATCH] Remove 'working copy' from the documentation and C code

The git term is 'working tree', so replace the most public references
to 'working copy'.

Signed-off-by: Carlos Martín Nieto <redacted>
---
 Documentation/config.txt  |    6 +++---
 Documentation/git-svn.txt |    2 +-
 diff-lib.c                |    2 +-
 merge-recursive.c         |    2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 6b93777..c3f22f3 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -147,7 +147,7 @@ advice.*::
 
 core.fileMode::
 	If false, the executable bit differences between the index and
-	the working copy are ignored; useful on broken filesystems like FAT.
+	the working tree are ignored; useful on broken filesystems like FAT.
 	See linkgit:git-update-index[1].
 +
 The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
@@ -179,7 +179,7 @@ is created.
 
 core.trustctime::
 	If false, the ctime differences between the index and the
-	working copy are ignored; useful when the inode change time
+	working tree are ignored; useful when the inode change time
 	is regularly modified by something outside Git (file system
 	crawlers and some backup systems).
 	See linkgit:git-update-index[1]. True by default.
@@ -292,7 +292,7 @@ core.ignoreStat::
 	If true, commands which modify both the working tree and the index
 	will mark the updated paths with the "assume unchanged" bit in the
 	index. These marked files are then assumed to stay unchanged in the
-	working copy, until you	mark them otherwise manually - Git will not
+	working tree, until you mark them otherwise manually - Git will not
 	detect the file changes	by lstat() calls. This is useful on systems
 	where those are very slow, such as Microsoft Windows.
 	See linkgit:git-update-index[1].
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 713e523..4ba6f61 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -297,7 +297,7 @@ Any other arguments are passed directly to 'git log'
        Show what revision and author last modified each line of a file. The
        output of this mode is format-compatible with the output of
        `svn blame' by default. Like the SVN blame command,
-       local uncommitted changes in the working copy are ignored;
+       local uncommitted changes in the working tree are ignored;
        the version of the file in the HEAD revision is annotated. Unknown
        arguments are passed directly to 'git blame'.
 +
diff --git a/diff-lib.c b/diff-lib.c
index 9c29293..c7d33d7 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -289,7 +289,7 @@ static void show_new_file(struct rev_info *revs,
 
 	/*
 	 * New file in the index: it might actually be different in
-	 * the working copy.
+	 * the working tree.
 	 */
 	if (get_stat_data(new, &sha1, &mode, cached, match_missing,
 	    &dirty_submodule, &revs->diffopt) < 0)
diff --git a/merge-recursive.c b/merge-recursive.c
index db9ba19..0c9f77e 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -337,7 +337,7 @@ static void make_room_for_directories_of_df_conflicts(struct merge_options *o,
 						      struct string_list *entries)
 {
 	/* If there are D/F conflicts, and the paths currently exist
-	 * in the working copy as a file, we want to remove them to
+	 * in the working tree as a file, we want to remove them to
 	 * make room for the corresponding directory.  Such paths will
 	 * later be processed in process_df_entry() at the end.  If
 	 * the corresponding directory ends up being removed by the
-- 
1.7.5.2.354.g349bf

Re: Worktree vs. working copy

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:52:05

Carlos Martín Nieto [off-list ref] writes:
Subject: [PATCH] Remove 'working copy' from the documentation and C code

The git term is 'working tree', so replace the most public references
to 'working copy'.

Signed-off-by: Carlos Martín Nieto <redacted>
Thanks.

"working tree" is a term used to collectively call the whole, and I think
all the places in your patch read better with "working tree".

People with background from other systems refer to one particular file in
the working tree as "working copy", I think, but...
 core.fileMode::
 	If false, the executable bit differences between the index and
-	the working copy are ignored; useful on broken filesystems like FAT.
+	the working tree are ignored; useful on broken filesystems like FAT.
... this compares "the index and the working tree", meaning each path in
the index and the corresponding file in the working tree (both are taken
as a _collection_), so this rewrite makes perfect sense.  The same for
the description for trustctime.
quoted hunk
@@ -292,7 +292,7 @@ core.ignoreStat::
 	If true, commands which modify both the working tree and the index
 	will mark the updated paths with the "assume unchanged" bit in the
 	index. These marked files are then assumed to stay unchanged in the
-	working copy, until you	mark them otherwise manually - Git will not
+	working tree, until you mark them otherwise manually - Git will not
This again is "paths in the" working tree, and the term is used as a
collection (good).  The same for "git-svn" manpage.
quoted hunk
diff --git a/diff-lib.c b/diff-lib.c
index 9c29293..c7d33d7 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -289,7 +289,7 @@ static void show_new_file(struct rev_info *revs,
 
 	/*
 	 * New file in the index: it might actually be different in
-	 * the working copy.
+	 * the working tree.
 	 */
We are looking at one path, and wondering if it is different "in the"
working tree---again used as a collection (it would have said "it might
actually be different from the working copy" if it referred to an instance
in the collection). The same for the comment in merge-recursive.c.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help