diff mercurial/cext/parsers.c @ 48244:f7fd629ffb98

dirstate-v2: Separate HAS_FILE_MTIME and HAS_DIRECTORY_MTIME flags Previously the same flag was used, with its meaning based on whether the node otherwise identifies a file tracked anywhere. In addition to being more explicit, this enables storing a directory mtime if a given path used to be tracked in a parent commit (so the dirstate still has data about it) but became a directory in the working copy. (However this is not done yet as it would require a larger change, replacing the `dirstate_map::NodeData` enum with struct fields.) Differential Revision: https://phab.mercurial-scm.org/D11662
author Simon Sapin <simon.sapin@octobus.net>
date Thu, 14 Oct 2021 16:39:16 +0200
parents 7e78c72ee3ea
children 1730b2fceaa1
line wrap: on
line diff
--- a/mercurial/cext/parsers.c	Thu Oct 14 16:06:31 2021 +0200
+++ b/mercurial/cext/parsers.c	Thu Oct 14 16:39:16 2021 +0200
@@ -119,7 +119,7 @@
 		t->size = 0;
 	}
 	if (has_meaningful_mtime) {
-		t->flags |= dirstate_flag_has_meaningful_mtime;
+		t->flags |= dirstate_flag_has_file_mtime;
 		t->mtime = mtime;
 	} else {
 		t->mtime = 0;
@@ -225,7 +225,7 @@
 {
 	if (dirstate_item_c_removed(self)) {
 		return 0;
-	} else if (!(self->flags & dirstate_flag_has_meaningful_mtime) ||
+	} else if (!(self->flags & dirstate_flag_has_file_mtime) ||
 	           !(self->flags & dirstate_flag_p1_tracked) ||
 	           !(self->flags & dirstate_flag_wc_tracked) ||
 	           (self->flags & dirstate_flag_p2_info)) {
@@ -334,7 +334,7 @@
 			t->flags = (dirstate_flag_wc_tracked |
 			            dirstate_flag_p1_tracked |
 			            dirstate_flag_has_meaningful_data |
-			            dirstate_flag_has_meaningful_mtime);
+			            dirstate_flag_has_file_mtime);
 			t->mode = mode;
 			t->size = size;
 			t->mtime = mtime;
@@ -395,7 +395,7 @@
    to make sure it is correct. */
 static PyObject *dirstate_item_set_possibly_dirty(dirstateItemObject *self)
 {
-	self->flags &= ~dirstate_flag_has_meaningful_mtime;
+	self->flags &= ~dirstate_flag_has_file_mtime;
 	Py_RETURN_NONE;
 }
 
@@ -409,7 +409,7 @@
 	}
 	self->flags = dirstate_flag_wc_tracked | dirstate_flag_p1_tracked |
 	              dirstate_flag_has_meaningful_data |
-	              dirstate_flag_has_meaningful_mtime;
+	              dirstate_flag_has_file_mtime;
 	self->mode = mode;
 	self->size = size;
 	self->mtime = mtime;
@@ -419,7 +419,7 @@
 static PyObject *dirstate_item_set_tracked(dirstateItemObject *self)
 {
 	self->flags |= dirstate_flag_wc_tracked;
-	self->flags &= ~dirstate_flag_has_meaningful_mtime;
+	self->flags &= ~dirstate_flag_has_file_mtime;
 	Py_RETURN_NONE;
 }
 
@@ -437,7 +437,7 @@
 	if (self->flags & dirstate_flag_p2_info) {
 		self->flags &= ~(dirstate_flag_p2_info |
 		                 dirstate_flag_has_meaningful_data |
-		                 dirstate_flag_has_meaningful_mtime);
+		                 dirstate_flag_has_file_mtime);
 		self->mode = 0;
 		self->mtime = 0;
 		self->size = 0;