为什么 git svn init xxxxx 创建一个名为 Floor 的新目录并在那里初始化以及如何修复
why does git svn init xxxxx creates a new directory called Floor and initializes there and how to fix
我们正在从 CloudForge SVN 托管迁移到 Azure 开发运营 GIT,我正在迁移我的所有存储库。我移动了其中的 3 个,然后我进入了一个 .net C# SFP 项目,它以不同的方式做事,我不知道为什么。
我正在执行的步骤:
- 在 devops 中创建 SFP 项目
- 在 D:\projects 上创建新目录
- 将作者文件放入目录 - 在 notepad++ 中打开并更改为 UDF8 格式
- 打开GITCMD
- git svn init ##CloudForgeRepoAddressHERe## --no-metadata
- git 配置 svn.authorsfile authors.txt
- git svn fetch
- git svn rebase - 错误但 运行 无论如何
- git push --set-upstream https://HorizonsQES@dev.azure.com/HorizonsQES/CSLS/_git/CSLS master
通常在第 5 步中,该过程会初始化我所在目录中的空目录,但它会创建一个 Floor 目录。
目前我正在尝试继续,但我不确定它是否能正常工作。
有人知道它为什么要创建楼层目录吗?当我进行提取时,它出错了。
我可能不得不在没有任何评论的情况下手动将这个项目添加到 devops 中,这对这个项目来说并不是世界末日。
请阅读接下来的几行:
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
...
Checked through r9709
最后一行说 git svn fetch
成功了。
至于Floor
目录……很简单。你自己指定的。
参见 man git-init
— it accepts optional [directory]
argument in the last position, which allows you to init
other directory than the CWD。这是在行动:
[~]$ mkdir -vp /tmp/ttt
mkdir: created directory '/tmp/ttt'
[~]$ cd /tmp/ttt
[/tmp/ttt]$
[/tmp/ttt]$ ls -la #-- no output; /tmp/ttt is empty as expected from just-created new directory
[/tmp/ttt]$
[/tmp/ttt]$ git init foobar
Initialized empty Git repository in /tmp/ttt/foobar/.git/
[/tmp/ttt]$ #-- ^^^^^^
[/tmp/ttt]$ #-- ||||||
[/tmp/ttt]$ #-- NOTICE ----------------------//////
[/tmp/ttt]$
[/tmp/ttt]$ ls -a . foobar
.:
drwxr-xr-x - ulidtko 28 Sep 11:37 foobar
foobar:
drwxr-xr-x - ulidtko 28 Sep 11:37 .git
[/tmp/ttt]$ #-- I.e. in `.` (= CWD = /tmp/ttt) there's only `foobar` which is a git repo
[/tmp/ttt]$ #-- Which shows that we `git init`ed a directory other than CWD
git svn init
当然会将呼叫转给git init
,所以这就是你拥有它的原因。
如果我猜对了你的审查,你说:
git svn init https://..../asdf/qwer/Shop Floor Processing --no-metadata
你应该知道,根据 Unix Shell 规则,bash
会将此命令解析为 git svn init ARG1 ARG2 ARG3 ARG4
和 ARG1=https://..../asdf/qwer/Shop
、ARG2=Floor
、ARG3=Processing
, ARG4=--no-metadata
. IE。参数由空格分隔。要将包含空格 作为单个参数 的任何内容(目录路径,URL...任何内容)传递,您需要像这样 quote it:
git svn init "https://..../asdf/qwer/Shop Floor Processing" --no-metadata
我们正在从 CloudForge SVN 托管迁移到 Azure 开发运营 GIT,我正在迁移我的所有存储库。我移动了其中的 3 个,然后我进入了一个 .net C# SFP 项目,它以不同的方式做事,我不知道为什么。
我正在执行的步骤:
- 在 devops 中创建 SFP 项目
- 在 D:\projects 上创建新目录
- 将作者文件放入目录 - 在 notepad++ 中打开并更改为 UDF8 格式
- 打开GITCMD
- git svn init ##CloudForgeRepoAddressHERe## --no-metadata
- git 配置 svn.authorsfile authors.txt
- git svn fetch
- git svn rebase - 错误但 运行 无论如何
- git push --set-upstream https://HorizonsQES@dev.azure.com/HorizonsQES/CSLS/_git/CSLS master
通常在第 5 步中,该过程会初始化我所在目录中的空目录,但它会创建一个 Floor 目录。
目前我正在尝试继续,但我不确定它是否能正常工作。
有人知道它为什么要创建楼层目录吗?当我进行提取时,它出错了。
我可能不得不在没有任何评论的情况下手动将这个项目添加到 devops 中,这对这个项目来说并不是世界末日。
请阅读接下来的几行:
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. ... Checked through r9709
最后一行说 git svn fetch
成功了。
至于Floor
目录……很简单。你自己指定的。
参见 man git-init
— it accepts optional [directory]
argument in the last position, which allows you to init
other directory than the CWD。这是在行动:
[~]$ mkdir -vp /tmp/ttt
mkdir: created directory '/tmp/ttt'
[~]$ cd /tmp/ttt
[/tmp/ttt]$
[/tmp/ttt]$ ls -la #-- no output; /tmp/ttt is empty as expected from just-created new directory
[/tmp/ttt]$
[/tmp/ttt]$ git init foobar
Initialized empty Git repository in /tmp/ttt/foobar/.git/
[/tmp/ttt]$ #-- ^^^^^^
[/tmp/ttt]$ #-- ||||||
[/tmp/ttt]$ #-- NOTICE ----------------------//////
[/tmp/ttt]$
[/tmp/ttt]$ ls -a . foobar
.:
drwxr-xr-x - ulidtko 28 Sep 11:37 foobar
foobar:
drwxr-xr-x - ulidtko 28 Sep 11:37 .git
[/tmp/ttt]$ #-- I.e. in `.` (= CWD = /tmp/ttt) there's only `foobar` which is a git repo
[/tmp/ttt]$ #-- Which shows that we `git init`ed a directory other than CWD
git svn init
当然会将呼叫转给git init
,所以这就是你拥有它的原因。
如果我猜对了你的审查,你说:
git svn init https://..../asdf/qwer/Shop Floor Processing --no-metadata
你应该知道,根据 Unix Shell 规则,bash
会将此命令解析为 git svn init ARG1 ARG2 ARG3 ARG4
和 ARG1=https://..../asdf/qwer/Shop
、ARG2=Floor
、ARG3=Processing
, ARG4=--no-metadata
. IE。参数由空格分隔。要将包含空格 作为单个参数 的任何内容(目录路径,URL...任何内容)传递,您需要像这样 quote it:
git svn init "https://..../asdf/qwer/Shop Floor Processing" --no-metadata