代码之家  ›  专栏  ›  技术社区  ›  Artilheiro

在为IPhone开发时,我应该使用Git还是Subversion?

  •  2
  • Artilheiro  · 技术社区  · 17 年前

    在我看来,subversion的集中式模型更适合于web应用程序开发,在web应用程序开发中,您有一个工程师团队目前在同一个代码库上工作,并且不断发布。

    另一方面,Git的分布式模型对IPhone应用程序很有吸引力,因为1)我不需要连接来浏览存储库2)它的速度快得多3)开发将共享,但不会经常共享。

    对不起,如果我回答了我自己的问题,我的意思不是要挑起争论,请随意给出单行答案。

    10 回复  |  直到 17 年前
        1
  •  7
  •   Gordon Childs    17 年前

    绝对是吉特。今年我学到了两个新东西:iPhone编程和git。 虽然iPhone编程让我讨厌我的生活,但git改善了我的生活方式 我开发软件。无痛的分支意味着我可以 分支 每件事 ,没有告诉世界其他地方,什么时候 我对它非常满意,我可以把它合并到我们奇妙的稳定 船长/后备箱。

    这很好,没有压力释放任何没有准备好的东西

    我对iPhone的事情还没有决定。

        2
  •  6
  •   Wyatt Barnett    17 年前

        3
  •  3
  •   Cascabel    17 年前

    关于分布式与集中式VCS,您应该认识到的一点是,分布式VCS可以做集中式VCS所能做的一切。有了git,您可以拥有一个公共存储库,即代码的权威版本,并以多种方式进行管理—例如,如果所有开发人员都可以使用它,那么它将获得您想要的关于集中式VCS的一切,除了git的所有附加好处和CVS/SVN的任何不足之处。

        4
  •  2
  •   jbrennan    17 年前

    Versions 如果你想要一个替代品。

    话虽如此,我基本上是一个人的商店(虽然我使用两台机器),我发现git使用起来更好。

        5
  •  2
  •   mmc    17 年前

    在iPhone开发方面,我是一个人,我使用Mercurial(非常非常类似于git)。我的决定因素很简单,就是我想学习使用分布式源代码管理系统。

    如果您是单人商店,那么主要的区别在于git/Mercurial中的代码分支和合并要容易得多。一个小的区别是svn存储库占用了更多的磁盘空间(但在iPhone项目中,这不太可能是一个大问题)。除此之外,你不太可能注意到这么大的差异。

        6
  •  2
  •   Chris K    17 年前

    以下是我对源代码管理的一般建议。到目前为止,Subversion是我最喜欢的工具,也是我最有经验的工具。这就是说,我在任何工作站上做的第一件事就是下载并安装SVK,它可以让您断开连接访问subversion存储库(因为我主要使用笔记本电脑工作,有时在公园或后院,没有wifi接入)。

    因此,如果您已经在使用subversion,我建议您不要部署git,而是抓取SVK并开始使用它(而且它非常成熟,已经存在了几年)。缺点是它有时会很慢(用perl编写)。

    Download SVK

        7
  •  1
  •   Alex Reynolds    17 年前

    Svn支持内置于Xcode中。您可以手动安装较新的客户端。

        8
  •  1
  •   Pinochle    17 年前

    如果没有人强迫您使用svn,那么您可能应该使用git,因为git可以与svn互操作(这意味着,从技术上讲,您可以在与您一起工作的人使用svn时使用git;不过这可能太麻烦了)。

    git初始化

    #!/bin/sh
    # 
    # This script initializes a git repository and adds all the elements 
    # of the project directory to the repository
    
    
    # Set the basic variables of the script.
    project_directory=`osascript << APPLESCRIPT
    tell application "Xcode"
        set mypath to the project directory of project 1
        set mypath to the POSIX path of mypath as string
    end tell
    APPLESCRIPT`  
    
    cd $project_directory
    
    # create the git project configuration files
    cat << EOF > .gitignore
    .gitignore
    .DS_Store
    .gitattributes
    build/*
    EOF
    
    cat << EOF > .gitattributes
    *.pbxproj -crlf -diff -merge
    EOF 
    
    /usr/local/bin/git init
    /usr/local/bin/git add *
    

    git添加

    #!/bin/sh
    # 
    # This script does a git adds a file of the user's choosing
    # to the git repository.
    
    
    # Set the basic variables of the script.
    project_directory=`osascript << APPLESCRIPT
    tell application "Xcode"
        set mypath to the project directory of project 1
        set mypath to the POSIX path of mypath as string
    end tell
    APPLESCRIPT`  
    
    files_to_add=`%%%{PBXUtilityScriptsPath}%%%/AskUserForExistingFileDialog "Add files"`
    
    cd $project_directory
    
    /usr/local/bin/git add $files_to_add
    

    你可以在这里看到一个模式,它可以让你快速写出其他的。在“用户脚本”对话框中,您可以为命令指定键序列。我发现在日常使用中,我很少需要去命令行使用git。

        9
  •  0
  •   Kendall Helmstetter Gelner    17 年前

    我真的不能给你一个明确的答案,因为我已经有一段时间没有使用CVS或Subversion了——但我已经与其他iPhone开发人员一起使用过Git项目,而且效果非常好。

    唯一的潜在危险是,如果不止一个人在添加新文件,有时您必须解决XCode项目中的合并冲突,但我认为SVN也会有类似的问题。

    如果您确实使用git,那么github.com作为一个存储库工作得非常好,而且他们有大量的文档用于在Mac上使用git(您可以访问站点的该部分进行设置)。

        10
  •  -2
  •   Cliff    17 年前