Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in tip

fogcreek shellext: warn before deleting .kbf directory

Changeset 218eb60d7e2e

Parent b2bbf1aee6bb

by David Golub

Changes to 3 files · Browse files at 218eb60d7e2e Showing diff from parent b2bbf1aee6bb Diff from another changeset...

 
210
211
212
213
214
215
216
217
218
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
211
212
 
 
 
 
 
 
 
213
214
215
216
217
218
219
220
221
222
223
224
225
@@ -210,10 +210,16 @@
 const int KeyShortcutListCount = sizeof(KeyShortcutList) / sizeof(CKeyShortcut);    // Message displayed if the user tries to delete the internal .hg directory -const LPCTSTR DeleteHgMessage = "The folder you are attempting to delete, .hg, is used " - "internally by Mercurial to store the history of this repository. If you delete " - "this folder, your code will no longer be treated as a source code control " - "repository by Mercurial. If you do no have a backup copy of the repository " - "elsewhere, its history will be lost permanently. Are you sure that you want to " - "delete the .hg folder?"; -const LPCTSTR DeleteHgTitle = "TortoiseHg Warning"; +const LPCWSTR DeleteHgMessage = L"The folder you are attempting to delete, .hg, is used " + L"internally by Mercurial to store the history of this repository. If you delete " + L"this folder, your code will no longer be treated as a source code control " + L"repository by Mercurial. If you do no have a backup copy of the repository " + L"elsewhere, its history will be lost permanently. Are you sure that you want to " + L"delete the .hg folder?"; +const LPCWSTR DeleteHgTitle = L"TortoiseHg Warning"; + +// Message displayed if the user tries to delete the internal .kbf directory +const LPCWSTR DeleteKbfMessage = L"The folder you are attempting to delete, .kbf, is " + L"used internally by the kbfiles extension to Mercurial. Deleting it will corrupt " + L"your repository. Are you sure that you want to delete the .kbf folder?"; +const LPCWSTR DeleteKbfTitle = L"TortoiseHg Warning";
 
52
53
54
55
56
 
 
 
 
 
52
53
54
 
 
55
56
57
58
@@ -52,5 +52,7 @@
 extern const int KeyShortcutListCount;    // Warning messages displayed by the copy hook -extern const LPCTSTR DeleteHgMessage; -extern const LPCTSTR DeleteHgTitle; +extern const LPCWSTR DeleteHgMessage; +extern const LPCWSTR DeleteHgTitle; +extern const LPCWSTR DeleteKbfMessage; +extern const LPCWSTR DeleteKbfTitle;
 
30
31
32
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
35
36
 
37
38
39
 
42
43
44
45
 
46
47
48
 
30
31
32
 
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
 
54
55
56
57
 
60
61
62
 
63
64
65
66
@@ -30,10 +30,28 @@
  if (wFunc != FO_DELETE || !(dwSrcAttribs & FILE_ATTRIBUTE_DIRECTORY)) return IDYES;     CString strDirName = pszSrcFile; - if (strDirName.Right(4) != "\\.hg") return IDYES; + LPCTSTR lpszMsgName = NULL; + CStringW strMenuText; + CStringW strHelpText; + if (strDirName.Right(4) == "\\.hg") + { + lpszMsgName = "hgwarning"; + strMenuText = DeleteHgTitle; + strHelpText = DeleteHgMessage; + } + else if (strDirName.Right(5) == "\\.kbf") + { + strDirName.Truncate(strDirName.GetLength() - 5); + strDirName += "\\.hg\\kilnbfiles\\dirstate"; + if (::PathFileExists(strDirName)) + { + lpszMsgName = "kbfwarning"; + strMenuText = DeleteKbfTitle; + strHelpText = DeleteKbfMessage; + } + }   - CStringW strMenuText = DeleteHgTitle; - CStringW strHelpText = DeleteHgMessage; + if (lpszMsgName == NULL) return IDYES;     // Attempt to load localized message and title strings if they exist.   CString strLang; @@ -42,7 +60,7 @@
  {   CStringW strMenuText2;   CStringW strHelpText2; - GetCMenuTranslation(strLang, "hgwarning", strMenuText, strHelpText); + GetCMenuTranslation(strLang, lpszMsgName, strMenuText, strHelpText);   if (!strMenuText2.IsEmpty()) strMenuText = strMenuText2;   if (!strHelpText2.IsEmpty()) strHelpText = strHelpText2;   }