From 5b1144ab9972119fc261c8a495a28b66bfc14802 Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Sat, 10 Aug 2024 16:59:44 +0200 Subject: [PATCH] ide: '.git' now ignored in directory comparison tool --- uppsrc/CtrlLib/Ctrl.lay | 2 +- uppsrc/TextDiffCtrl/DirDiff.cpp | 6 +++++- uppsrc/ide/Diff.cpp | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/uppsrc/CtrlLib/Ctrl.lay b/uppsrc/CtrlLib/Ctrl.lay index 8924b1b18..d0938d930 100644 --- a/uppsrc/CtrlLib/Ctrl.lay +++ b/uppsrc/CtrlLib/Ctrl.lay @@ -26,7 +26,7 @@ LAYOUT(EditDateLayout, 236, 62) ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(6, 24)) END_LAYOUT -LAYOUT(ProgressLayout, 320, 72) +LAYOUT(ProgressLayout, 500, 72) ITEM(Upp::Button, stop, SetLabel(t_("Cancel")).HCenterPosZ(68, 0).BottomPosZ(4, 24)) UNTYPED(pi, HSizePosZ(4, 4).TopPosZ(28, 12)) ITEM(Upp::Label, info, HSizePosZ(4, 4).TopPosZ(4, 20)) diff --git a/uppsrc/TextDiffCtrl/DirDiff.cpp b/uppsrc/TextDiffCtrl/DirDiff.cpp index f189cf2cf..d6cfa4973 100644 --- a/uppsrc/TextDiffCtrl/DirDiff.cpp +++ b/uppsrc/TextDiffCtrl/DirDiff.cpp @@ -217,7 +217,11 @@ void DirDiffDlg::Compare() String p1 = AppendFileName(~dir1, f[i]); String p2 = AppendFileName(~dir2, f[i]); int n = NORMAL_FILE; - if((IsNull(dlim) || FileGetTime(p1) >= dlim || FileGetTime(p2) >= dlim) && !FileEqual(p1, p2, n)) + auto IsGit = [&](const String& path) { + return path.Find("/.git/") >= 0 || path.Find("\\.git/") >= 0 || path.Find("\\.git\\") >= 0 || path.Find("/.git\\") >= 0; + }; + if((IsNull(dlim) || FileGetTime(p1) >= dlim || FileGetTime(p2) >= dlim) && !FileEqual(p1, p2, n) && + !IsGit(p1) && !IsGit(p2)) list.Add(MakeTuple(f[i], p1, p2, n)); } diff --git a/uppsrc/ide/Diff.cpp b/uppsrc/ide/Diff.cpp index 9821ae410..0c4a2f7e5 100644 --- a/uppsrc/ide/Diff.cpp +++ b/uppsrc/ide/Diff.cpp @@ -105,7 +105,10 @@ void LoadBranches(DropList& branch, const String& dir) void LoadGitRevisions(DropList& r, const String& dir, const String& branch, const String& file) { - String gitcmd = "log --format=medium --date=short --follow --name-only " + branch; + String gitcmd = "log --format=medium --date=short --name-only "; + if(file.GetCount()) + gitcmd << " --follow "; + gitcmd << branch; if(file.GetCount()) gitcmd << " -- " << GetFileName(file); String log = GitCmd(dir, gitcmd);