13 "Modified: / 15-01-2013 / 10:04:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
13 "Modified: / 15-01-2013 / 10:04:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
14 ! ! |
14 ! ! |
15 |
15 |
16 !AbstractFileBrowser methodsFor:'menu-queries-hg'! |
16 !AbstractFileBrowser methodsFor:'menu-queries-hg'! |
17 |
17 |
|
18 hasHGWorkingCopyNotSelected |
|
19 ^ self hasHGWorkingCopySelected not |
|
20 |
|
21 "Created: / 13-02-2014 / 12:01:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
22 ! ! |
|
23 |
|
24 !AbstractFileBrowser methodsFor:'menu-queries-hg'! |
|
25 |
18 hasHGWorkingCopySelected |
26 hasHGWorkingCopySelected |
19 |
27 |
20 ^ self hgMenusAreShown |
28 ^ self hgMenusAreShown |
21 and:[((Smalltalk at:#HGRepository) discover:self currentDirectoryDisplayed) notNil] |
29 and:[((Smalltalk at:#HGRepository) discover:self currentDirectoryDisplayed) notNil] |
22 |
30 |
27 |
35 |
28 hgBranches |
36 hgBranches |
29 self hgExecuteCommand: 'branches' objects: #() |
37 self hgExecuteCommand: 'branches' objects: #() |
30 |
38 |
31 "Created: / 25-01-2013 / 20:14:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
39 "Created: / 25-01-2013 / 20:14:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
40 ! ! |
|
41 |
|
42 !AbstractFileBrowser methodsFor:'menu actions-scm-hg'! |
|
43 |
|
44 hgClone |
|
45 | selectedDirectories dialog repoUrlHolder repoDirHolder repodirName repoDir | |
|
46 |
|
47 selectedDirectories := self currentSelectedDirectories. |
|
48 repoUrlHolder := nil asValue. |
|
49 repoDirHolder := (selectedDirectories size = 1 and:[ selectedDirectories anElement directoryContents isEmpty]) |
|
50 ifTrue:[ selectedDirectories anElement baseName asValue ] |
|
51 ifFalse:[ nil asValue ]. |
|
52 dialog := DialogBox new. |
|
53 dialog title: (resources string: 'Clone repository...'). |
|
54 dialog addLabelledInputField:(resources string: 'Repository URL:') |
|
55 adjust:#left |
|
56 on:repoUrlHolder |
|
57 tabable:true |
|
58 separateAtX:0.3. |
|
59 dialog addLabelledInputField:(resources string: 'Directory:') |
|
60 adjust:#left |
|
61 on:repoDirHolder |
|
62 tabable:true |
|
63 separateAtX:0.3. |
|
64 dialog addAbortButton; addOkButton. |
|
65 dialog open. |
|
66 dialog accepted ifFalse:[ ^ self ]. |
|
67 |
|
68 repoUrlHolder value isEmptyOrNil ifTrue:[ |
|
69 Dialog warn: (resources string: 'Empty repository URL') |
|
70 ]. |
|
71 |
|
72 repoDir := self currentDirectoryDisplayed / repoDirHolder value. |
|
73 repoDir exists ifTrue:[ |
|
74 repoDir isDirectory ifTrue:[ |
|
75 repoDir directoryContents notEmpty ifTrue:[ |
|
76 Dialog error: (resources string:'Cannot clone repository. Directory %1 is not empty.' with: repodirName). |
|
77 ^ self. |
|
78 ]. |
|
79 ] ifFalse:[ |
|
80 Dialog error: (resources string:'Cannot clone repository. %1 is not an empty directory' with: repodirName). |
|
81 ^ self. |
|
82 ]. |
|
83 ]. |
|
84 ProgressIndicator |
|
85 displayBusyIndicator: (resources string: 'Cloning %1 to %2...' with: repoUrlHolder value with: repoDirHolder value) |
|
86 at:(Screen default center) |
|
87 during:[ |
|
88 HGRepository clone: repoUrlHolder value to: repoDir. |
|
89 self updateCurrentDirectory |
|
90 ]. |
|
91 |
|
92 "Created: / 13-02-2014 / 11:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
93 "Modified: / 13-02-2014 / 16:11:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
94 ! ! |
|
95 |
|
96 !AbstractFileBrowser methodsFor:'menu-queries-hg'! |
|
97 |
|
98 hgCloneEnabled |
|
99 ^ self hasHGWorkingCopyNotSelected |
|
100 |
|
101 "Created: / 13-02-2014 / 11:57:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
32 ! ! |
102 ! ! |
33 |
103 |
34 !AbstractFileBrowser methodsFor:'menu actions-scm-hg'! |
104 !AbstractFileBrowser methodsFor:'menu actions-scm-hg'! |
35 |
105 |
36 hgCommit |
106 hgCommit |
141 |
211 |
142 hgHeads |
212 hgHeads |
143 self hgExecuteCommand: 'heads' objects: #() |
213 self hgExecuteCommand: 'heads' objects: #() |
144 |
214 |
145 "Created: / 25-01-2013 / 20:14:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
215 "Created: / 25-01-2013 / 20:14:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
216 ! ! |
|
217 |
|
218 !AbstractFileBrowser methodsFor:'menu actions-scm-hg'! |
|
219 |
|
220 hgInit |
|
221 | selectedDirectories initial repodirName repodir | |
|
222 |
|
223 selectedDirectories := self currentSelectedDirectories. |
|
224 initial := (selectedDirectories size = 1 and:[ selectedDirectories anElement directoryContents isEmpty]) |
|
225 ifTrue:[ selectedDirectories anElement baseName ] |
|
226 ifFalse:[ 'repository' ]. |
|
227 repodirName := Dialog request: (resources string: 'Enter name of the repository to create') initialAnswer: initial. |
|
228 repodir := self currentDirectoryDisplayed / repodirName. |
|
229 repodir exists ifTrue:[ |
|
230 repodir isDirectory ifTrue:[ |
|
231 repodir directoryContents notEmpty ifTrue:[ |
|
232 Dialog error: (resources string:'Cannot initialize repository. Directory %1 is not empty.' with: repodirName). |
|
233 ^ self. |
|
234 ]. |
|
235 ] ifFalse:[ |
|
236 Dialog error: (resources string:'Cannot initialize repository. %1 is not an empty directory' with: repodirName). |
|
237 ^ self. |
|
238 ]. |
|
239 ]. |
|
240 HGRepository init: repodir. |
|
241 self updateCurrentDirectory |
|
242 |
|
243 "Created: / 13-02-2014 / 11:59:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
244 "Modified: / 13-02-2014 / 16:19:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
245 ! ! |
|
246 |
|
247 !AbstractFileBrowser methodsFor:'menu-queries-hg'! |
|
248 |
|
249 hgInitEnabled |
|
250 ^ self hasHGWorkingCopyNotSelected |
|
251 |
|
252 "Created: / 13-02-2014 / 11:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
146 ! ! |
253 ! ! |
147 |
254 |
148 !AbstractFileBrowser methodsFor:'menu-dynamic-hg'! |
255 !AbstractFileBrowser methodsFor:'menu-dynamic-hg'! |
149 |
256 |
150 hgMenuMerge |
257 hgMenuMerge |
597 ) |
704 ) |
598 (MenuItem |
705 (MenuItem |
599 label: '-' |
706 label: '-' |
600 ) |
707 ) |
601 (MenuItem |
708 (MenuItem |
|
709 enabled: hgCloneEnabled |
|
710 label: 'Clone...' |
|
711 itemValue: hgClone |
|
712 ) |
|
713 (MenuItem |
|
714 enabled: hgInitEnabled |
|
715 label: 'Create...' |
|
716 itemValue: hgInit |
|
717 ) |
|
718 (MenuItem |
|
719 label: '-' |
|
720 ) |
|
721 (MenuItem |
602 enabled: hasHGWorkingCopySelected |
722 enabled: hasHGWorkingCopySelected |
603 label: 'Edit Repository Config (.hg/hgrc)' |
723 label: 'Edit Repository Config (.hg/hgrc)' |
604 itemValue: hgEditConfigRepository |
724 itemValue: hgEditConfigRepository |
605 ) |
725 ) |
606 (MenuItem |
726 (MenuItem |
607 enabled: hasHGWorkingCopySelected |
|
608 label: 'Edit User Config (~/.hgrc)' |
727 label: 'Edit User Config (~/.hgrc)' |
609 itemValue: hgEditConfigUser |
728 itemValue: hgEditConfigUser |
610 ) |
729 ) |
611 ) |
730 ) |
612 nil |
731 nil |
613 nil |
732 nil |
614 ) |
733 ) |
615 |
|
616 "Modified: / 04-04-2013 / 19:43:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
617 ! ! |
734 ! ! |
618 |
735 |
619 !Annotation class methodsFor:'instance creation'! |
736 !Annotation class methodsFor:'instance creation'! |
620 |
737 |
621 HGRevision: aString |
738 HGRevision: aString |
835 | dir repo versionMethod | |
952 | dir repo versionMethod | |
836 "Eventually update an version_HG" |
953 "Eventually update an version_HG" |
837 |
954 |
838 self binaryRevisionString isNil ifTrue:[ |
955 self binaryRevisionString isNil ifTrue:[ |
839 dir := Smalltalk getPackageDirectoryForPackage: self package. |
956 dir := Smalltalk getPackageDirectoryForPackage: self package. |
840 dir := HGRepository discover: dir. |
957 dir notNil ifTrue:[ |
841 dir notNil ifTrue:[ |
958 dir := HGRepository discover: dir. |
842 repo := HGRepository on: dir. |
959 dir notNil ifTrue:[ |
843 versionMethod := HGSourceCodeManager ensureVersionMethodInClass: self package: self package. |
960 repo := HGRepository on: dir. |
844 versionMethod annotateWith: |
961 versionMethod := HGSourceCodeManager ensureVersionMethodInClass: self package: self package. |
845 (HGRevisionAnnotation revision: repo workingCopy changesetId) |
962 versionMethod annotateWith: |
846 ]. |
963 (HGRevisionAnnotation revision: repo workingCopy changesetId) |
|
964 ]. |
|
965 ] |
847 ]. |
966 ]. |
848 |
967 |
849 "Created: / 26-11-2012 / 13:06:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
968 "Created: / 26-11-2012 / 13:06:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
850 "Modified: / 27-11-2012 / 22:14:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
969 "Modified: / 07-02-2014 / 10:59:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
851 ! ! |
970 ! ! |
852 |
971 |
853 !ProjectDefinition class methodsFor:'accessing - hg - settings'! |
972 !ProjectDefinition class methodsFor:'accessing - hg - settings'! |
854 |
973 |
855 hgRemoveContainesForDeletedClasses |
974 hgRemoveContainesForDeletedClasses |
931 "/ menu addItem: (MenuItem new |
1050 "/ menu addItem: (MenuItem new |
932 "/ label:((resources string: 'Push to ') , 'default' asText allBold); |
1051 "/ label:((resources string: 'Push to ') , 'default' asText allBold); |
933 "/ value:[package repository push: default]; |
1052 "/ value:[package repository push: default]; |
934 "/ yourself). |
1053 "/ yourself). |
935 "/ ]. |
1054 "/ ]. |
936 self withWaitCursorDo:[ |
1055 (remotes size ~~ 1 or:[remotes anElement ~~ default]) ifTrue:[ |
937 (remotes size > 1 or:[remotes anElement ~~ default]) ifTrue:[ |
1056 submenu := Menu new. |
938 submenu := Menu new. |
1057 push submenu: submenu. |
939 push submenu: submenu. |
1058 remotes do:[:remote| |
940 remotes do:[:remote| |
1059 submenu addItem: (MenuItem new |
941 submenu addItem: (MenuItem new |
1060 label: remote displayString; |
942 label: remote displayString; |
1061 value:[package repository push: remote]; |
943 value:[package repository push: remote]; |
1062 yourself). |
944 yourself). |
|
945 ]. |
|
946 ]. |
1063 ]. |
947 ]. |
1064 ]. |
948 ^menu. |
1065 ^menu. |
949 |
1066 |
950 "Created: / 10-12-2012 / 03:56:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1067 "Created: / 10-12-2012 / 03:56:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |