Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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修补程序_Svn_New Operator_Patch_Directory - Fatal编程技术网

创建包含新目录的SVN修补程序

创建包含新目录的SVN修补程序,svn,new-operator,patch,directory,Svn,New Operator,Patch,Directory,首先,请原谅我的文字太长,但我会尽可能地详细 我正在为一个开源项目(DSpace)开发。我没有对他们的SVN repo的提交权限,所以我检查了源代码并一直使用git来管理我的版本控制 在我的开发过程中,我向我的项目添加了几个目录和二进制文件 是时候制作一个SVN补丁文件了,这样我就可以回馈社区了!Netbeans通过团队->创建补丁选项为我完成这项工作。到目前为止还不错 但是,当我在另一台机器上再次签出源代码并使用patch命令时: #获取当前目录 DIR=“$(cd“$(dirname“$0”

首先,请原谅我的文字太长,但我会尽可能地详细

我正在为一个开源项目(DSpace)开发。我没有对他们的SVN repo的提交权限,所以我检查了源代码并一直使用git来管理我的版本控制

在我的开发过程中,我向我的项目添加了几个目录和二进制文件

是时候制作一个SVN补丁文件了,这样我就可以回馈社区了!Netbeans通过团队->创建补丁选项为我完成这项工作。到目前为止还不错

但是,当我在另一台机器上再次签出源代码并使用patch命令时:

#获取当前目录
DIR=“$(cd“$(dirname“$0”)”和&pwd)”
#查看dspace发布
svn公司http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.2/ -q$DIR/dspace-1.7.2/
#应用补丁
cd$DIR/dspace-1.7.2
echo“正在运行”和&pwd
补丁-干运行-N-p0<$DIR/patches/patch.diff
cd$DIR
运行脚本

当我运行这个脚本时,一切都很顺利,直到修补程序尝试修改我的一个新目录中的文件为止。它说:

在输入行9214处找不到要修补的文件
也许您使用了错误的-p或--strip选项?
在此之前的案文是:
--------------------------
|索引:dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI/jquery-ui.js
|---dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI.js Base(Base)
|+++dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI.js本地修改(基于本地)
--------------------------
要修补的文件:
在停止之前,它能够修补原始dspace版本中已经存在的一组文件,因此我认为它与patch命令的-pXXX参数无关(尽管我尝试了-p10)。。。我认为只有当我试图修补我创建的目录中的一个文件时,才会发生这种情况我猜patch命令不会创建新目录,因此无法找到正确的路径。

这让我快发疯了,请问有人知道如何解决我的问题吗

提前谢谢

编辑:

我在patch命令中添加了--verbose选项。结果如下:

--------------------------
使用计划A修补文件dspace jspui/dspace jspui webapp/src/main/webapp/static/js/autocompleter/styles.css。。。
亨克1号1分成功。
隐马尔可夫模型。。。下一个补丁对我来说就像一个统一的diff。。。
在输入行9214找不到要修补的文件
也许您使用了错误的-p或--strip选项?
在此之前的案文是:
--------------------------
|索引:dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI/jquery-ui.js
|---dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI.js Base(Base)
|+++dspace jspui/dspace jspui webapp/src/main/webapp/static/js/jQueryUI.js本地修改(基于本地)
--------------------------
要修补的文件:
退出补丁程序后,如果

cd dspace-1.7.2/dspace-jspui/dspace-jspui-webapp/src/main/webapp/static/js/jQueryUI
我得到:

-bash:cd:dspace-1.7.2/dspace-jspui/dspace-jspui-webapp/src/main/webapp/static/js/jQueryUI:没有这样的文件或目录

这是我在开发过程中添加的文件夹之一,它证明了修补程序没有创建这些新文件夹。

如果生成修补程序,其中必须包括添加新文件/目录,对于纯subversion CLI,您必须将
--git
选项添加到
svn diff
命令中

能否显示patch.diff的部分或全部?我不知道NetBeans是如何生成修补程序的,但是如果您在文件系统中添加文件或目录,并且不告诉subversion应该添加它,它将不会显示在CLI客户端生成的修补程序中。我尝试通过svn add*--force将所有文件添加到修改过的目录中,然后我执行了svn diff>patch.diff命令。不幸的是,我不能在这里发布diff文件,因为它是一本学术著作,只能在审阅后发布…:(我认为您可能需要在签出时手动创建目录和文件-进一步考虑,我不认为subversion支持在补丁中创建新目录(我不认为也不支持文件)-svn diff只列出文本差异。是的,我会尝试。我会创建一个“覆盖”目录结构只包含我的新目录,并从svn签出将其复制到根dspace dir上。它支持添加二进制文件,只是不为它们生成修补程序。