我在白天将几个版本的Monticello包提交到我磁盘上的本地存储库。
稍后,我希望将本地存储库与Smalltalkhub.com存储库同步。
目前,我使用Monticello浏览器将本地提交逐个手动复制到Smalltalkhub存储库。
如何自动执行此任务?
发布于 2013-07-04 03:05:48
您可以使用Gofer自动执行Monticello任务。
Gofer new
package: 'MyProject-Core';
package: 'MyProject-Tests';
url: 'http://smalltalkhub.com/mc/USER/MyProject/main/' username: 'USER' password: '***';
push.发布于 2013-07-04 03:25:20
在“深入法罗”这本新的免费书(法罗by example two -http://rmod.lille.inria.fr/pbe2/)的Gofer章节中。我详细介绍了Gofer。特别是,我介绍了在存储库之间迁移的一些方法。
Gofer的默认值是fetch和pull,在此基础上您可以轻松地构建同步。
例如,如果您使用Smalltalk集线器
Gofer new
smalltalkhubUser: 'PharoBooks' project: 'GoferExample';
package: 'PBE2GoferExample';
package: 'PBE2GoferExampleSecondPackage';
push.
Gofer new
smalltalkhubUser: 'PharoBooks' project: 'GoferExample';
package: 'PBE2GoferExample';
package: 'PBE2GoferExampleSecondPackage';
fetch您还可以获取一些信息,如下所示
((Gofer new
smalltalkhubUser: 'Pharo' project: 'NativeBoost'; allResolved)
groupedBy: [ :each | each packageName])现在,您还可以迁移
| go |
go := Gofer new squeaksource3: 'Pharo20'.
go allResolved
do: [ :each | self crLog: each packageName.
go package: each packageName;
fetch]然后,一旦您获得本地目录中的文件,您就可以推送到另一个存储库。
| go |
go := Gofer new.
go repository: (MCHttpRepository
location: 'http://ss3.gemtalksystems.com/ss/rb-pharo'
user: 'pharoUser'
password: 'pharoPwd').
(((FileSystem disk workingDirectory / 'package-cache') allFiles
select: [:each | '*.mcz' match: each basename])
groupedBy: [:each | (each base copyUpToLast: $-) ]) keys
do: [:name | go package: name; push]https://stackoverflow.com/questions/17454965
复制相似问题