Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何结合SVN和Confluence来控制对文件的访问?_Svn_Document_Confluence - Fatal编程技术网

如何结合SVN和Confluence来控制对文件的访问?

如何结合SVN和Confluence来控制对文件的访问?,svn,document,confluence,Svn,Document,Confluence,我的老板希望我们在MS Word文档中使用subversion。我们的想法是,只有我们的部门有权访问Word文档,所以我们更新并提交更改 但是我们想和公司里的其他人分享这些文件。我们使用汇流来控制访问 目前,当我们更新Word文档时,我们将提交给SVN,然后在Confluence中更新附件(视为页面)。这允许我们通过电子邮件将URL发送到某个文档,并且只允许具有正确权限的用户查看该文档。这就是我们想要的 有没有办法让Confluence引用SVN中指定的文件的最新版本?我希望将更改提交给SVN,

我的老板希望我们在MS Word文档中使用subversion。我们的想法是,只有我们的部门有权访问Word文档,所以我们更新并提交更改

但是我们想和公司里的其他人分享这些文件。我们使用汇流来控制访问

目前,当我们更新Word文档时,我们将提交给SVN,然后在Confluence中更新附件(视为页面)。这允许我们通过电子邮件将URL发送到某个文档,并且只允许具有正确权限的用户查看该文档。这就是我们想要的


有没有办法让Confluence引用SVN中指定的文件的最新版本?我希望将更改提交给SVN,并让用户始终在Confluence中看到最新版本。

我认为这种情况下没有插件,但您可以编写一个小型shell脚本,使用Confluence CLI将更改的文件作为附件推送到Confluence中的指定页面。

此请求无法满足,因为您要求的功能跨越了Atlassian的其他产品。与此请求最匹配的是通过一层间接寻址(
[Confluence]->[Fisheye]->[SVN]
)将链接嵌入到Confluence中

SVN的实际汇流集成不存在,因为它超出了汇流的产品范围。相反,Atlassian为此提供了其他工具,如和,以直接与SVN接口

如果您想开发一个尽可能接近您老板的原始请求的服务栈,请考虑以下内容,以建立亚特兰西提供的完整的集成套件。除此之外的任何事情都应该通过社区或公司本身的方式进行调查


(充分披露:我既不为Atlassian工作,也与他们没有任何现有的业务关系。我只是在受雇于我的公司内使用他们的软件。)

难道您不能编写一个SVN post commit钩子来检查给定的repo或给定的文件扩展名,然后直接更新confluence数据库中的
attachmentdata
表吗

  • 将二进制位置连同代表名称和修订号一起传递给svnlook
  • 然后运行
    svnlook
    以获取已更改文件的列表
  • 然后过滤文件,以便只列出word文档
  • 然后为每个文件获取文件名和文件路径
  • 从文件名中可以获得文件数据
  • 然后运行SQL更新相关的attachmentdata条目
  • 有关提交后挂钩的初学者指南,请访问,其他信息可通过以下Stackoverflow问题获得:


    MS SharePoint拥有您需要的所有特性(文档版本加上限制访问所有内置的Web接口),并且它是免费的(或者至少,基础版本是,您将要做什么)

    < P>我建议在服务器上添加一个后提交的钩子。
    @echo off
    SET SVNLOOK=C:\Program Files\CollabNet Subversion Server\svnlook.exe
    SET GREP=D:\SVN\Repo\hooks\grep.exe
    
    REM Write a list of modified *.doc files to a .log file
    ("%svnlook%" changed -t %2 %1 | "%grep%" "^U.*\.doc$" > %2.log)
    
    REM ----------------------------------------
    REM Here, you would use the file "%2.log" to push the updated word documents.
    REM ----------------------------------------
    
    REM Clean up the .log file
    del %2.log
    

    我会放弃整个想法,然后

  • 将word文档作为合并页面导入(请记住,如果您有大量文档,这可能看起来是一项平凡的任务)
  • 使用汇流权限管理控制访问。。。您可以将用户管理绑定到MS Active Directory和其他目录服务

  • 这样,您就有了1)一个相当方便的权限控制系统和2)文档的版本控制系统。

    如果您有confluence,为什么需要svn?