equal
deleted
inserted
replaced
117 } else { |
117 } else { |
118 t->mode = 0; |
118 t->mode = 0; |
119 t->size = 0; |
119 t->size = 0; |
120 } |
120 } |
121 if (has_meaningful_mtime) { |
121 if (has_meaningful_mtime) { |
122 t->flags |= dirstate_flag_has_meaningful_mtime; |
122 t->flags |= dirstate_flag_has_file_mtime; |
123 t->mtime = mtime; |
123 t->mtime = mtime; |
124 } else { |
124 } else { |
125 t->mtime = 0; |
125 t->mtime = 0; |
126 } |
126 } |
127 return (PyObject *)t; |
127 return (PyObject *)t; |
223 |
223 |
224 static inline int dirstate_item_c_v1_mtime(dirstateItemObject *self) |
224 static inline int dirstate_item_c_v1_mtime(dirstateItemObject *self) |
225 { |
225 { |
226 if (dirstate_item_c_removed(self)) { |
226 if (dirstate_item_c_removed(self)) { |
227 return 0; |
227 return 0; |
228 } else if (!(self->flags & dirstate_flag_has_meaningful_mtime) || |
228 } else if (!(self->flags & dirstate_flag_has_file_mtime) || |
229 !(self->flags & dirstate_flag_p1_tracked) || |
229 !(self->flags & dirstate_flag_p1_tracked) || |
230 !(self->flags & dirstate_flag_wc_tracked) || |
230 !(self->flags & dirstate_flag_wc_tracked) || |
231 (self->flags & dirstate_flag_p2_info)) { |
231 (self->flags & dirstate_flag_p2_info)) { |
232 return ambiguous_time; |
232 return ambiguous_time; |
233 } else { |
233 } else { |
332 t->size = size; |
332 t->size = size; |
333 } else { |
333 } else { |
334 t->flags = (dirstate_flag_wc_tracked | |
334 t->flags = (dirstate_flag_wc_tracked | |
335 dirstate_flag_p1_tracked | |
335 dirstate_flag_p1_tracked | |
336 dirstate_flag_has_meaningful_data | |
336 dirstate_flag_has_meaningful_data | |
337 dirstate_flag_has_meaningful_mtime); |
337 dirstate_flag_has_file_mtime); |
338 t->mode = mode; |
338 t->mode = mode; |
339 t->size = size; |
339 t->size = size; |
340 t->mtime = mtime; |
340 t->mtime = mtime; |
341 } |
341 } |
342 } else { |
342 } else { |
393 |
393 |
394 /* This means the next status call will have to actually check its content |
394 /* This means the next status call will have to actually check its content |
395 to make sure it is correct. */ |
395 to make sure it is correct. */ |
396 static PyObject *dirstate_item_set_possibly_dirty(dirstateItemObject *self) |
396 static PyObject *dirstate_item_set_possibly_dirty(dirstateItemObject *self) |
397 { |
397 { |
398 self->flags &= ~dirstate_flag_has_meaningful_mtime; |
398 self->flags &= ~dirstate_flag_has_file_mtime; |
399 Py_RETURN_NONE; |
399 Py_RETURN_NONE; |
400 } |
400 } |
401 |
401 |
402 /* See docstring of the python implementation for details */ |
402 /* See docstring of the python implementation for details */ |
403 static PyObject *dirstate_item_set_clean(dirstateItemObject *self, |
403 static PyObject *dirstate_item_set_clean(dirstateItemObject *self, |
407 if (!PyArg_ParseTuple(args, "iii", &mode, &size, &mtime)) { |
407 if (!PyArg_ParseTuple(args, "iii", &mode, &size, &mtime)) { |
408 return NULL; |
408 return NULL; |
409 } |
409 } |
410 self->flags = dirstate_flag_wc_tracked | dirstate_flag_p1_tracked | |
410 self->flags = dirstate_flag_wc_tracked | dirstate_flag_p1_tracked | |
411 dirstate_flag_has_meaningful_data | |
411 dirstate_flag_has_meaningful_data | |
412 dirstate_flag_has_meaningful_mtime; |
412 dirstate_flag_has_file_mtime; |
413 self->mode = mode; |
413 self->mode = mode; |
414 self->size = size; |
414 self->size = size; |
415 self->mtime = mtime; |
415 self->mtime = mtime; |
416 Py_RETURN_NONE; |
416 Py_RETURN_NONE; |
417 } |
417 } |
418 |
418 |
419 static PyObject *dirstate_item_set_tracked(dirstateItemObject *self) |
419 static PyObject *dirstate_item_set_tracked(dirstateItemObject *self) |
420 { |
420 { |
421 self->flags |= dirstate_flag_wc_tracked; |
421 self->flags |= dirstate_flag_wc_tracked; |
422 self->flags &= ~dirstate_flag_has_meaningful_mtime; |
422 self->flags &= ~dirstate_flag_has_file_mtime; |
423 Py_RETURN_NONE; |
423 Py_RETURN_NONE; |
424 } |
424 } |
425 |
425 |
426 static PyObject *dirstate_item_set_untracked(dirstateItemObject *self) |
426 static PyObject *dirstate_item_set_untracked(dirstateItemObject *self) |
427 { |
427 { |
435 static PyObject *dirstate_item_drop_merge_data(dirstateItemObject *self) |
435 static PyObject *dirstate_item_drop_merge_data(dirstateItemObject *self) |
436 { |
436 { |
437 if (self->flags & dirstate_flag_p2_info) { |
437 if (self->flags & dirstate_flag_p2_info) { |
438 self->flags &= ~(dirstate_flag_p2_info | |
438 self->flags &= ~(dirstate_flag_p2_info | |
439 dirstate_flag_has_meaningful_data | |
439 dirstate_flag_has_meaningful_data | |
440 dirstate_flag_has_meaningful_mtime); |
440 dirstate_flag_has_file_mtime); |
441 self->mode = 0; |
441 self->mode = 0; |
442 self->mtime = 0; |
442 self->mtime = 0; |
443 self->size = 0; |
443 self->size = 0; |
444 } |
444 } |
445 Py_RETURN_NONE; |
445 Py_RETURN_NONE; |