Since the caller now has the `FileState`, there's no need to pass it in by value only to get it back in the return value.
Unified · Split
| @@ -409,8 +409,8 @@ pub enum TreeStateError { · 408 unmodified lines | ||
| 409 | 409 | } |
| 410 | 410 | |
| 411 | 411 | enum UpdatedFileState { |
| 412 | − Unchanged(FileState), | |
| 413 | − Changed(TreeValue, FileState), | |
| 412 | + Unchanged, | |
| 413 | + Changed(TreeValue), | |
| 414 | 414 | } |
| 415 | 415 | |
| 416 | 416 | impl TreeState { |
| @@ -726,14 +726,15 @@ impl TreeState { · 309 unmodified lines | ||
| 726 | 726 | entry.path(), |
| 727 | 727 | maybe_current_file_state, |
| 728 | 728 | ¤t_tree, |
| 729 | − new_file_state, | |
| 729 | + &new_file_state, | |
| 730 | 730 | )?; |
| 731 | 731 | match update { |
| 732 | − UpdatedFileState::Unchanged(file_state) => { | |
| 733 | − self.file_states.insert(sub_path, file_state); | |
| 732 | + UpdatedFileState::Unchanged => { | |
| 733 | + self.file_states.insert(sub_path, new_file_state); | |
| 734 | 734 | } |
| 735 | − UpdatedFileState::Changed(tree_value, file_state) => { | |
| 736 | − self.file_states.insert(sub_path.clone(), file_state); | |
| 735 | + UpdatedFileState::Changed(tree_value) => { | |
| 736 | + self.file_states | |
| 737 | + .insert(sub_path.clone(), new_file_state); | |
| 737 | 738 | tree_builder.set(sub_path, tree_value); |
| 738 | 739 | } |
| 739 | 740 | } |
| @@ -818,7 +819,7 @@ impl TreeState { · 78 unmodified lines | ||
| 818 | 819 | disk_path: PathBuf, |
| 819 | 820 | maybe_current_file_state: Option<&FileState>, |
| 820 | 821 | current_tree: &Tree, |
| 821 | − new_file_state: FileState, | |
| 822 | + new_file_state: &FileState, | |
| 822 | 823 | ) -> Result<UpdatedFileState, SnapshotError> { |
| 823 | 824 | let current_file_state = match maybe_current_file_state { |
| 824 | 825 | None => { |
| @@ -826,23 +827,23 @@ impl TreeState { · 1 unmodified line | ||
| 826 | 827 | let file_type = new_file_state.file_type.clone(); |
| 827 | 828 | let file_value = |
| 828 | 829 | self.write_path_to_store(repo_path, &disk_path, None, file_type)?; |
| 829 | − return Ok(UpdatedFileState::Changed(file_value, new_file_state)); | |
| 830 | + return Ok(UpdatedFileState::Changed(file_value)); | |
| 830 | 831 | } |
| 831 | 832 | Some(current_file_state) => current_file_state, |
| 832 | 833 | }; |
| 833 | 834 | |
| 834 | 835 | // If the file's mtime was set at the same time as this state file's own mtime, |
| 835 | 836 | // then we don't know if the file was modified before or after this state file. |
| 836 | − if current_file_state != &new_file_state || current_file_state.mtime >= self.own_mtime { | |
| 837 | + if current_file_state != new_file_state || current_file_state.mtime >= self.own_mtime { | |
| 837 | 838 | let new_file_type = new_file_state.file_type.clone(); |
| 838 | 839 | let current_tree_value = current_tree.path_value(repo_path); |
| 839 | 840 | // If the file contained a conflict before and is now a normal file on disk, we |
| 840 | 841 | // try to parse any conflict markers in the file into a conflict. |
| 841 | 842 | let new_tree_value = |
| 842 | 843 | self.write_path_to_store(repo_path, &disk_path, current_tree_value, new_file_type)?; |
| 843 | − return Ok(UpdatedFileState::Changed(new_tree_value, new_file_state)); | |
| 844 | + return Ok(UpdatedFileState::Changed(new_tree_value)); | |
| 844 | 845 | } |
| 845 | − Ok(UpdatedFileState::Unchanged(new_file_state)) | |
| 846 | + Ok(UpdatedFileState::Unchanged) | |
| 846 | 847 | } |
| 847 | 848 | |
| 848 | 849 | fn write_conflict_to_store( |