0

我正在使用 Tortoise Subversion 对我正在开发的一些 Chrome 扩展进行源代码控制。当我在一台机器上的 Chrome 设置区域中构建扩展时,它抱怨隐藏_svn文件夹并且无法编译。因此,在签入我的更改之前,我需要暂时将其删除并稍后放回。

在另一台机器上这不会发生,并且这里的工作副本似乎_svn在该目录中没有文件夹?怎么会这样?不是每个文件夹都需要一个_svn目录来进行源代码管理吗?我查看了文件夹中的视图选项,即使我显示隐藏的系统文件和文件夹,它似乎也不存在?两台机器之间的唯一区别是一台(没有_svn文件夹)运行的是更新版本的 Tortoise SVN 客户端。

更新 - -

我现在意识到不一致是由于使用了两个不同版本的 Tortoise SVN 客户端。似乎 1.7+ 切换到使用位于存储库根目录中的单个 _svn 文件夹(参见下面的帖子)。我现在已经升级并且可以在没有 _svn 文件夹搞砸的情况下编译扩展:)

我再也看不到 .SVN 文件夹了?

4

1 回答 1

1

自从我使用 Subversion 已经有一段时间了,但是该目录通常不是命名为 .svn 吗?我以前从未见过_svn。试试看,看看有什么不同。

顺便说一句,如果您的构建脚本遇到错误并且没有到达将 svn 目录放回其所属位置的部分,并且您丢失了未提交的 svn 历史记录,那么您有一天会感到难过。与其删除特定的源代码控制目录,不如考虑将您想要的内容复制到临时目录。像这样:

TMPDIR=/tmp/myextension
CWD=`pwd`
mkdir $TMPDIR
pushd $TMPDIR
cp $CWD/*.js .
cp $CWD/*.html .
cp $CWD/*.css .
pushd $TMPDIR
zip -r /tmp/myextension.zip .
popd
rm -rf $TMPDIR
popd

(这是虚构的 Bash 代码,您似乎在 Windows 上,但您明白了。)这种方法的好处是您可以在将源文件复制到临时目录时对它们进行构建时处理,例如通过 sed 将新版本号插入清单中。

于 2013-05-02T14:57:36.293 回答