如何将包含文件的现有文件夹添加到SVN?

Sie*_*cje 77 svn

如何将没有版本控制的文件夹添加到特定的SVN位置?我经常开始编写代码,只有在我有几个包含代码文件的文件夹之后才将其添加到SVN.

我通常做的是:

  1. svn co我要创建一个新文件夹来存储我的代码的父目录.
  2. svn mkdir创建我想要放入代码的目录.
  3. 复制并粘贴我的代码.
  4. svn提交.
  5. 删除我当前的工作代码目录.
  6. 使用svn co重新创建我的工作代码目录.

qbo*_*lec 122

假设我在目录中有代码~/local_dir/myNewApp,我想把它放在' https://svn.host/existing_path/myNewApp '下(虽然能够忽略一些二进制文件,供应商库等).

  1. 在存储库中创建一个空文件夹 svn mkdir https://svn.host/existing_path/myNewApp
  2. 转到项目的父目录, cd ~/local_dir
  3. 查看本地文件夹上的空目录.不要害怕 - 您在本地拥有的文件不会被删除.svn co https://svn.host/existing_path/myNewApp.如果您的文件夹在本地具有与存储库中不同的名称,则必须将其指定为附加参数.
  4. 您可以看到svn st现在将显示所有文件?,这意味着它们当前不受版本控制
  5. svn add对要添加到存储库的文件执行操作,并添加其他文件svn:ignore.您可能会发现一些有用的选项svn help add,例如--parents或者--depth empty,当你想选择添加只有一些文件/文件夹.
  6. 承诺 svn ci

  • 谢谢@qbolec,“不要害怕”。对所有“最佳答案”+1。对于那些可能仍然害怕的人来说,这是一个提示:如果您仍然害怕,您可以备份您的工作。 (2认同)

pmo*_*mod 55

如果我正确理解了您的用例,我建议尝试使用svn add将新文件夹置于版本下,请参阅此处.以下将在版本控制下递归添加带有文件的新文件夹(如果您在有效的工作副本中):

svn add new_folder
svn commit -m "Add New folder to the project"
Run Code Online (Sandbox Code Playgroud)

如果您不在工作副本中,请使用svn checkout创建它,在那里复制new_folder并执行上述步骤.

要么

试试svn import,看这里 ; 以下将创建一个新文件夹并将文件上传到存储库:

svn import -m "Import new folder to the project" new_folder \
        http://SVN_REPO/repos/trunk/new_folder
Run Code Online (Sandbox Code Playgroud)

另请注意:

导入数据后,请注意原始树不受版本控制.要开始工作,您仍然需要svn checkout树的新工作副本


vap*_*guy 7

我不使用命令.您应该可以使用GUI执行此操作:

  • 右键单击"我的文档"文件夹中的空白区域,选择"TortoiseSVN">"Repo-browser".
  • 输入http:// subversion ...(您将保存到的Subversion服务器/目录的URL路径)作为路径,然后选择确定
  • 右键单击Repo中的根目录,然后选择" 添加文件夹".将它命名为您的项目并创建它.
  • 在Repo-browser中右键单击项目文件夹,然后选择Checkout.Checkout目录将是您的Visual Studio\Projects\{your project}文件夹.选择确定.
  • 您将收到一个警告,指出该文件夹不为空.说要签出/导出到该文件夹​​ - 它不会覆盖您的项目文件.
  • 打开项目文件夹.您将在与VS项目关联的文件夹中看到尚未添加到Subversion的问号.使用Ctrl +单击选择这些文件夹,然后右键单击其中一个选定项目并选择TortoiseSVN>添加
  • 在提示上选择"确定"
  • 你的文件应该添加.在Add Finished上选择OK!对话
  • 右键单击文件夹的空白区域,然后选择"刷新".现在,您将在文件夹/文件上看到"+"图标
  • 再次右键单击文件夹中的空白区域,然后选择SVN Commit
  • 添加有关您提交内容的消息,然后单击"确定"