diff options
author | Adrian Kummerlaender | 2015-12-24 10:28:20 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2015-12-24 10:28:20 +0100 |
commit | 50e1bb1a194c06ed0110bd13b5cca769a38c4157 (patch) | |
tree | 8a4ea0a378607d224779c0e7434a9c4888301bf4 | |
parent | ce1460dd98185f80db479c7dc7ca19026149a255 (diff) | |
download | change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar.gz change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar.bz2 change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar.lz change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar.xz change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.tar.zst change-50e1bb1a194c06ed0110bd13b5cca769a38c4157.zip |
Use full path for change tracking
Prevents the same file being tracked multiple times due to relative input paths.
-rw-r--r-- | src/tracking/change_tracker.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/tracking/change_tracker.cc b/src/tracking/change_tracker.cc index 9bbdcb6..490d7cb 100644 --- a/src/tracking/change_tracker.cc +++ b/src/tracking/change_tracker.cc @@ -30,7 +30,7 @@ ChangeTracker::ChangeTracker(utility::Logger* logger, const std::string& diff_cm children_() { } ChangeTracker::ChangeTracker(utility::Logger* logger): - ChangeTracker(logger, "diff -p") { } + ChangeTracker(logger, "diff -u") { } ChangeTracker::~ChangeTracker() { for ( auto&& tracked : this->children_ ) { @@ -43,7 +43,9 @@ ChangeTracker::~ChangeTracker() { } bool ChangeTracker::is_tracked(const std::string& file_path) const { - return this->children_.find(file_path) != this->children_.end(); + return this->children_.find( + boost::filesystem::canonical(file_path).string() + ) != this->children_.end(); } // Begins tracking changes to a file reachable by a given path @@ -72,7 +74,7 @@ bool ChangeTracker::is_tracked(const std::string& file_path) const { // bool ChangeTracker::track(const std::string& file_path) { auto result = this->children_.emplace( - file_path, + boost::filesystem::canonical(file_path).string(), std::make_unique<boost::process::child>( boost::process::launch_shell( this->diff_cmd_ + " - " + file_path, |