【发布时间】:2010-10-20 08:56:16
【问题描述】:
我在家中使用 Windows 进行开发并将我的更改发送给客户。客户不想安装任何 SCM,所以我需要发送我从上次迭代中更改的文件。 目前我正在使用带有某种自动化的 Subversion,通过自写批处理,即 Windows 和 GNU/unix 实用程序的混合。该脚本查看给定的修订,列出更改的文件,删除重复并在最后获取列表文件。
@echo off
if (%3) == () goto usage
set TO_REVISION=HEAD
set PUSHNAME=%3-%1
svn log -v -q -r %2 %3 | sed "s/^[ ^t]*[AM] \/[[:alnum:]_]*\/[[:alnum:]_]*\/\(.*\.[[:alnum:]_]*\)/tar --append --file=%PUSHNAME%.tar \1/" | sed "s/ (.*//g" | sort | uniq | grep -v "config.xml" >> %PUSHNAME%.bat
IF ERRORLEVEL 1 goto error
echo bzip2 %PUSHNAME%.tar>> %PUSHNAME%.bat
echo :: SVN REVISIONS :: %2>> %PUSHNAME%.bat
echo ... %PUSHNAME%.bat generated.
goto done
:usage
echo USAGE: %~nx0 push-file-name from[:to]-revision relative-or-absolute-path
echo See svn log -v -q -r [REV] to view repository log.
goto done
:error
echo ERROR! Check (if exists) output file %PUSHNAME%.bat
goto done
:done
批次并不完美,但对我来说还可以。 现在我决定转向 Git。我已将 subversion 存储库转换为 Git 存储库。但是向我展示 stopper 我在 Git 手册中找不到 svn -v -q -r log 的替换命令:-( 我确定应该是,但经过几天的搜索,我想向更有经验的 Git-Gurus 寻求帮助。
提前感谢您为我的问题花费的时间,
奥列格
【问题讨论】:
标签: git