我可以检查文件的两个版本之间的差异是否仅包含我添加的新前缀?
Can I check that the diff between two versions of a file solely contains a new prefix that I've added?
背景
作为将一些 类 抽象到一个接口的部分工作,我不得不更改一个使用这些旧 类 之一的文件,现在将其指向接口字段.
以前的文件看起来像这样(例如经过简化)。
public class Foo{
public string RetrieveValue(MyModel model)
{
return model.Area.Street.Flat;
}
public string RetrieveOtherValue(MyModel model)
{
return model.Area.Shop;
}
}
但现在看起来像这样。
public class Foo{
public string RetrieveValue(MyModel model)
{
return model.Base_Area.Base_Street.Base_Flat;
}
public string RetrieveOtherValue(MyModel model)
{
return model.Base_Area.Base_Shop;
}
}
问题
我可以很容易地检查这里唯一的变化是在各个地方包含了 Base_
吗?
使用 diff 工具可以很容易地看到这个比例,但文件足够大,我不相信只盯着它看。我使用的源代码管理是 git,但我很乐意在必要时使用其他工具。
理想情况下,我也想忽略各种空白。
这个怎么样?
diff <(git show HEAD~1:/path/to/file) <(sed 's/Base_//' /path/to/file)
更改为 HEAD~0
如果您还没有提交文件。
我认为以下内容应该接近:
git diff --word-diff-regex=. > changes.txt
grep -oP '\+[^\+]+\+' changes.txt | tr -d '\+' | sort -u
在第一行中,您创建了一个 diff,并将其写入文件。
第二行提取基于字符的更改并删除“+”。最后它被排序并保留唯一值。我将上面的代码应用于您的示例并得到以下结果:
Base_
这甚至适用于更多文件或在其他文件夹中更改的文件。您仍然可以立即得到答案 - 但以防万一,分析需要更多时间。
背景
作为将一些 类 抽象到一个接口的部分工作,我不得不更改一个使用这些旧 类 之一的文件,现在将其指向接口字段.
以前的文件看起来像这样(例如经过简化)。
public class Foo{
public string RetrieveValue(MyModel model)
{
return model.Area.Street.Flat;
}
public string RetrieveOtherValue(MyModel model)
{
return model.Area.Shop;
}
}
但现在看起来像这样。
public class Foo{
public string RetrieveValue(MyModel model)
{
return model.Base_Area.Base_Street.Base_Flat;
}
public string RetrieveOtherValue(MyModel model)
{
return model.Base_Area.Base_Shop;
}
}
问题
我可以很容易地检查这里唯一的变化是在各个地方包含了 Base_
吗?
使用 diff 工具可以很容易地看到这个比例,但文件足够大,我不相信只盯着它看。我使用的源代码管理是 git,但我很乐意在必要时使用其他工具。
理想情况下,我也想忽略各种空白。
这个怎么样?
diff <(git show HEAD~1:/path/to/file) <(sed 's/Base_//' /path/to/file)
更改为 HEAD~0
如果您还没有提交文件。
我认为以下内容应该接近:
git diff --word-diff-regex=. > changes.txt
grep -oP '\+[^\+]+\+' changes.txt | tr -d '\+' | sort -u
在第一行中,您创建了一个 diff,并将其写入文件。
第二行提取基于字符的更改并删除“+”。最后它被排序并保留唯一值。我将上面的代码应用于您的示例并得到以下结果:
Base_
这甚至适用于更多文件或在其他文件夹中更改的文件。您仍然可以立即得到答案 - 但以防万一,分析需要更多时间。