白天,我将多个版本的 Monticello 软件包提交到磁盘上的本地存储库。
稍后我想将本地存储库与 Smalltalkhub.com 存储库同步。
目前,我使用 Monticello 浏览器将本地提交手动一一复制到 Smalltalkhub 存储库。
我怎样才能自动化这个任务?
在“深入 pharo”新免费书的 Gofer 章节中(pharo 通过示例二 -http://rmod.lille.inria.fr/pbe2/ http://rmod.lille.inria.fr/pbe2/.) 我详细介绍了 Gofer。我特别介绍了一些在存储库之间迁移的方法
Gofer默认是fetch和pull,基于此你可以轻松构建同步。
例如,如果您使用 Smalltalk hub
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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)