1

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

_1。犯罪

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

_ 2. 更新

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

使用 SVNKit 库是否容易?

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

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

湾。客户端:处理接受任何冲突本地更改的更新

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);
    

谢谢!

4

2 回答 2

1

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

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

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

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

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

于 2012-09-05T16:10:41.130 回答
0

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

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

希望能帮助到你!

于 2012-09-06T01:11:56.733 回答