我正在创建一个创建存储库的批处理文件,并将文件夹从现有的和固定的目录导入到该存储库中。
将在放置批处理文件的文件夹中创建存储库。因此,例如,如果用户决定将批处理文件放在名为C:/ temp的目录中并运行批处理文件,则将创建存储库并将其放在C:/ temp中。如果批处理文件放在C:/ foo中,则将创建存储库并将其放在C:/ foo中。
为此,批处理文件具有以下命令:
svnadmin create ./Module_QWER

然而,在批处理文件中,使用" svn import"时出现问题。我尝试将目录中的文件夹导入到刚刚创建的存储库中:
svn import "C:/temp/content to import" ./Module_QWER/Sample/Trunk

发生错误:
svn: E205000: Try 'svn help import' for more information
svn: E205000: Invalid URL 'Module_QWER/Sample/Trunk'

据我所知,如果存储库的URL完整,导入将起作用,但如前所述,存储库的URL将取决于用户放置批处理文件的位置。有没有办法将文件夹导入存储库,无论存放在哪里,只要它与批处理文件放在同一目录中?
答案 0 :(得分:2)
当您使用与特定存储库相关的svn命令时,您需要拥有其完整路径和您要连接的协议。 因此,存储库的路径应该是:
file:///d:/full/path/to/repo
在你的情况下,它将是:
svn import "C:/temp/content to import" file:///%cd%/Module_QWER/Sample/Trunk -m "log message"
编辑:好的,我刚刚注意到问题的标题是没有使用路径中的协议。
我不认为这是可能的,但是使用%~dp0%
作为批处理的当前目录或%cd%
作为当前工作目录,可以简单地实现存储库的完整路径。