【问题标题】:SVNKit - commit a working copy and force repository to be an exact copySVNKit - 提交工作副本并强制存储库成为精确副本
【发布时间】:2012-09-06 17:33:22
【问题描述】:

使用 SVNKit 库编写 Java 应用程序我面临以下问题

_1。提交

  • 客户应提交可能已过时的工作副本
  • 提交后,存储库必须包含与提交前的工作副本完全相同的内容,即使工作副本已过时
  • 如果工作副本已过期,服务器更改将丢失

_ 2.更新

  • 客户应更新可能包含本地更改的工作副本
  • 更新后,工作副本必须包含与存储库完全相同的内容
  • 如果工作副本有本地更改,则更新后必须有很多内容

使用 SVNKit 库容易吗?

我对“强制提交”部分的实际想法

一个。存储库端:处理恢复到«工作副本版本»

b.客户端:处理更新,接受任何冲突本地更改

c。客户端:处理提交

我不确定这是否容易,尤其是第二点,是否有任何高级 API 方法可以做到这一点? «强制提交»部分对我来说是最紧迫的..

我对«强制更新»部分的实际想法

  • 我处理了一个简单的更新,但我不确定会丢失本地更改

        final File localProjectDirectory = new File(localProjectDirectoryPath);
        final SVNClientManager cm = SVNClientManager.newInstance(new DefaultSVNOptions());
        final SVNUpdateClient uc = cm.getUpdateClient();
        final SVNRevision svnHeadRevision = SVNRevision.HEAD;
        final SVNDepth svnRecursiveDepth = SVNDepth.fromRecurse(true);
        final boolean allowUnversionedObstructions = false;
        final boolean depthIsSticky = true;
        uc.doUpdate(localSyncProjectDirectory, svnHeadRevision, svnRecursiveDepth, allowUnversionedObstructions, depthIsSticky);
    

谢谢!

【问题讨论】:

    标签: java svn svnkit


    【解决方案1】:

    好吧,这听起来有点乱。 svn 的工作是多个程序员正在处理相同的源代码。所以说你希望 repo 成为你的工作副本的精确副本意味着你想删除/恢复 repo 中其他人的更改。这是没有意义的。 您所问的实际上是一项日常任务。您检查了代码,对其进行了一些更改,在此期间其他人检查了相同的代码,对其进行了更改,然后提交了更改

    现在您必须以一种不会“破坏”其他人的努力的方式提交您的更改,对吧? 使用 eclipse 或您正在使用的任何 svn 工具进行 svn 同步。 如果您不确定,请在继续下一部分之前备份整个项目

    如果没有冲突并且这很重要,那么首先从存储库中检出代码,然后再检入您的代码。

    如果有冲突怎么办,在这种情况下,你必须在更新和提交之前解决它们,所以一一转到冲突的行,将它们集成到你的代码中,当你完成一个类/文件然后标记它作为“冲突已解决”。

    解决所有冲突后,按照第一步中的说明进行操作,即从 repo 更新,然后提交您的代码

    【讨论】:

    • 感谢您的回复。我很了解 SVN 的工作,因为我每天都会单独或与团队一起将它用于我自己的代码。我正在编写一个项目(使用 SVNKit Java 库),我无法在未知时间更新项目,用户可以选择更新项目或提交他的本地项目覆盖服务器更改
    【解决方案2】:

    我正在使用 SVNnotifier 将所有内容同步在一起。

    http://svnnotifier.tigris.org/ 还有另一个程序,我忘记了名字,但我明天会得到它。

    希望对你有帮助!

    【讨论】:

    • 您好,感谢您提供该工具,我个人使用它可能会很有趣。但是,它并没有解决我的问题,也许不清楚我所说的问题是在使用 SVNKit 库的 Java 应用程序中解决。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-07-15
    • 2011-02-22
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    相关资源
    最近更新 更多