【问题标题】:Migrating SVN to Android Studio将 SVN 迁移到 Android Studio
【发布时间】:2014-10-04 13:29:31
【问题描述】:

我正在将我的 Android 项目从 Eclipse 迁移到 Android Studio。我使用 Subversion 并且想知道如何将我的 SVN 迁移到 Android Studio 中使用的新文件结构而不会丢失我的历史记录。

感谢您的帮助!

【问题讨论】:

    标签: android eclipse svn gradle android-studio


    【解决方案1】:

    发布此内容是因为它可能对其他人有所帮助。

    我也遇到了同样的问题。 @user714965 很鼓舞人心,但没有解决我的问题,因为我不知道如何让 SVN 识别我将文件从原始文件夹移动到工作副本中的新结构。

    对于以下内容,您将需要 TortoiseSVN 或类似的 SVN GUI 客户端来执行此操作。

    这是我所做的:

    1. 将 Eclipse 项目的最后更改提交到 SVN 存储库中。
    2. 打开 Android Studio 并使用它来导入 Eclipse 项目工作副本。
    3. Android Studio 可以很好地将 Eclipse 项目转换为 Android Studio/Gradle 项目。我们称这个项目为“PrjGradle”。
    4. 打开转换后的 Gradle 项目文件夹窗口并将其保留在屏幕的一侧
    5. 进入项目所在的 SVN 存储库(使用 TortoiseSVN)。
    6. 将您当前的主干备份到一个分支或标签中,并将其命名为“final_eclipse”或其他任何名称。
    7. 现在,直接在 TortoiseSVN 存储库浏览器窗口中镜像本地计算机上新转换的 Gradle 项目的文件夹结构。意思是,查看目录在“PrkGradle”中的结构,并直接在主干存储库上创建/删除/重命名文件夹。这将非常乏味,但如果您想保留您的 SVN 历史记录,您必须忍受它。
    8. 当您直接在 repo 上移动(而不是复制)文件时,文件的历史记录保持不变。
    9. 完成后,将重组后的目录签出到本地计算机中。我们称之为“NewPrj”。
    10. 使用合适的文件夹比较程序(例如 Beyond Compare)来同步丢失的项目(例如 build.gradle、.iml 文件等)
    11. 将转换后的项目重命名为“PrjGradle_old”,并将新签出的项目 (NewPrj) 重命名为“PrjGradle”。
    12. 在 Android Studio 中打开“PrjGradle”。就是这样!

    希望一切顺利。

    【讨论】:

    • @Karim:因为我没有手动修改存储库的权限;所以在第7步中,是否可以在Eclipse项目结构中镜像Gradle项目(PrjGradle)结构(创建/删除/重命名文件夹),然后在SVN中提交。
    • 您可以这样做,但您可能必须逐渐更改文件夹结构。就像在文件夹树中一次删除一个文件夹然后提交一样。然后删除另一个,然后再次提交。然后移动一个文件,然后再次提交。否则,您将获得无法解决的冲突树错误。它会比现在更乏味。也许您可以临时访问 SVN。或者让有权为您做这件事的人。
    • 使用 Android Studio 导入项目功能节省了大量工作,因为它生成了所有必要的 gradle 脚本。
    • 是的,导入功能有效,但此技巧适用于那些希望保留 Eclipse 版本控制历史的人。如果您将 Eclipse 工作文件夹重组为 Gradle,您的 SVN 将损坏,您将不得不重新开始,因为重新启动 SVN 将是一场噩梦。如果您正在开始一个新的 Android Studio 项目,或者您不关心以前的 Eclipse SVN 历史记录,请不要这样做。
    【解决方案2】:

    我不知道这两种文件结构的区别。但它会这样尝试:

    1. 检查您的项目(最好使用 TortoiseSVN 之类的客户端)
    2. 构建新的文件结构(新文件夹)
    3. 提交
    4. 将文件从旧结构移至新结构
    5. 提交(如果只有移动操作,请检查提交对话框!)
    6. 删除不再需要的旧文件夹
    7. 提交

    SVN 会识别这些移动操作。您将通过提交对话框中的操作查看它是否有效。如果有“删除”/“新”操作出现问题,则应该只有“移动”操作。

    【讨论】:

    • 感谢您的帮助!经过进一步研究,我认为这是目前最好的解决方案。这意味着我将无法使用漂亮的 Android Studio 导入工具来自动更改文件结构并生成我的 gradle 构建文件,但我至少可以保留我的版本控制历史记录。
    猜你喜欢
    • 2013-11-23
    • 2015-03-14
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    相关资源
    最近更新 更多