V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Vaspike
V2EX  ›  问与答

请教下 IDEA 中使用 git-svn 有什么比较方便的办法

  •  
  •   Vaspike · 26 天前 · 738 次点击

    目前公司使用的是 svn,但我比较依赖 git 的本地仓库的使用,所以我使用了 git 的 git-svn 来兼容我的需求

    我整理了一份使用文档,并使用了几个月了(顺便跟大家分享下):

    Git svn

    clone 一个 svn 项目

    git svn clone svn://xxx.xx/code
    

    可选参数:

    --no-metadata
    

    使用此参数时,拉取下来的仓库将会变成独立仓库,之前的提交信息都在,但之后的所有与 svn 远程仓库的相关拉取提交都不会成功

    提交

    提交分为两个步骤,首先将暂存区文件提交到 git 本地仓库,然后再上传到 svn 远程仓库

    1. git 提交

      git commit -m"git 提交"
      
    2. git-svn 提交

      dcommit会将 git repo 当前 branch 与远程 svn repo 中的差异的 git commit 都提交到 svn repo ,并为每个 git commit 生成一个对应的 svn revision 。这和”git push”很类似。

      git svn dcommit
      

    从 svn repo 拉取最新代码变更

    git svn rebase
    

    但是, 有些使用上的便利性问题想请教下,每次我使用 IDEA 的commit功能提交到本地仓库后,都需要再打开一次终端并手动执行一次git svn dcommit,这个步骤很容易忘记

    我期望能在 IEDAcommit动作后, 可以设置一个按钮或者脚本,绑定到快捷键,用来代替上述需要打开终端执行dcommit的操作, 不知道大家有没有解决过类似的需求

    还有拉代码的操作也需要在终端输入git svn rebase来完成, 这个动作我也期望能不打开终端就能完成

    1 条回复
    Vaspike
        1
    Vaspike  
    OP
       26 天前
    解决了这个问题了同志们:
    要在 IntelliJ IDEA 中实现自动执行 git svn dcommit 和 git svn rebase 的功能,您可以使用自定义的外部工具配置。以下是步骤:

    1. 配置外部工具
    打开 IntelliJ IDEA 。
    在菜单中选择 File > Settings ( Windows/Linux )或 IntelliJ IDEA > Preferences ( macOS )。
    在左侧的菜单中选择 Tools > External Tools 。
    点击右侧的 + 按钮添加新的外部工具。
    添加 dcommit
    Name: Git SVN dcommit
    Program: /usr/bin/git (请根据您的系统路径调整)
    Arguments: svn dcommit
    Working Directory: $ProjectFileDir$
    添加 rebase
    Name: Git SVN rebase
    Program: /usr/bin/git (同样根据您的系统路径调整)
    Arguments: svn rebase
    Working Directory: $ProjectFileDir$
    2. 设置快捷键
    仍在 Settings 窗口中,选择 Keymap 。
    在搜索框中输入 External Tools ,找到您刚刚创建的 Git SVN dcommit 和 Git SVN rebase 。
    右键点击它们,选择 Add Keyboard Shortcut ,然后设置您喜欢的快捷键。
    3. 使用外部工具
    现在,您可以在 IntelliJ IDEA 中使用您设置的快捷键来执行 git svn dcommit 和 git svn rebase ,而不需要打开终端。

    4. 提示
    确保您在执行这些操作之前已经在 IntelliJ IDEA 中提交了更改到本地 Git 仓库。
    如果您在使用过程中遇到任何问题,请检查外部工具的配置和路径设置是否正确。
    通过以上步骤,您可以更便捷地在 IntelliJ IDEA 中使用 git svn 的功能,避免了频繁切换到终端的麻烦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:37 · PVG 21:37 · LAX 06:37 · JFK 09:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.