尝试通过Swift克隆git存储库遇到协议违规

时间:2019-04-14 18:56:51

标签: swift git macos headless

这里的达尔文通过雨燕初生植物。

这是Intro to Process()的继续。

我正在尝试使用Swift作为实现达尔文级流程自动化的手段,例如克隆git存储库,释放文件夹等。

给了我一个模板来尝试进行克隆(通过上面的链接)。
我已经创建了一个测试链接;和 在达尔文提示下进行了尝试。

所以我知道它有效。
但是我通过我的Swift脚本收到了协议错误。

有什么补救办法?
我必须使用特定的协议吗?

import Foundation

extension Process {

    private static let gitExecURL = URL(fileURLWithPath: "/usr/bin/git")

    public func clone(repo: String, path: String) throws {
        executableURL = Process.gitExecURL
        arguments = ["clone", repo, path]
        try run()
    }

}


let source = "git clone https://AmourineTech@bitbucket.org/AmourineTech/testbit.git"
let target = "/Users/Ric/workarea"

print("Hello, World!")

try! Process().clone(repo: source, path: target)

print("Done")

控制台输出:

Hello, World!
Done
Cloning into '/Users/Ric/workarea'...
fatal: protocol 'git clone https' is not supported
Program ended with exit code: 0

1 个答案:

答案 0 :(得分:2)

似乎source必须是URL,而不是git clone命令:

let source = "https://AmourineTech@bitbucket.org/AmourineTech/testbit.git"