gpt4 book ai didi

java - SVNKit - 提交工作副本并强制存储库成为精确副本

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:32 25 4
gpt4 key购买 nike

使用 SVNKit 库编写 Java 应用程序时遇到以下问题

_1。提交

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

_2.更新

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

使用 SVNKit 库是否可以轻松实现?

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

a.存储库端:处理恢复到“工作副本版本”

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

谢谢!

最佳答案

好吧,这听起来有点困惑。 svn 的工作是多个程序员正在处理相同的源代码。因此,如果您希望存储库成为工作副本的精确副本,则意味着您希望删除/恢复存储库中其他内容的更改。这没有道理。您所要求的实际上是一项日常任务。您 checkout 了代码,对其进行了一些更改,在此期间其他人 checkout 了相同的代码,对其进行了更改,然后提交了更改

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

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

如果存在冲突怎么办,在这种情况下,您必须在更新和提交之前解决它们,因此请逐一查找冲突行,将它们集成到您的代码中,当您完成一个类/文件后,将其标记为“冲突已解决”。

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

关于java - SVNKit - 提交工作副本并强制存储库成为精确副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com