簡體   English   中英

將“svn st”管道化為“svn commit”

[英]Piping “svn st” into “svn commit”

我有一個項目有一個我修改過的配置文件。 我想提交除配置文件之外的所有內容。 這是svn的狀態。

?       web/trunk/webroot/tmp
M       web/trunk/webroot/css/styles.css
M       web/trunk/views/posts/list_all.ctp
M       web/trunk/config/core.php

這就是我跑的命令。

svn st | grep ? -v | grep config/core.php -v | awk '{print $2;}' | xargs sudo svn commit

但我不斷收到這條消息。

Received SIGHUP or SIGTERM
svn: Commit failed (details follow):
svn: system('/usr/bin/editor svn-commit.tmp') returned 256

任何關於如何解決這個問題的建議都會非常感激。

編輯:這有點兒有趣。 我回應了結果,這就是我得到的。

svn st | grep ? -v | grep gearman -v | awk '{print $2;}' | xargs echo | awk '{ print "sudo svn commit " $0; }'

輸出:

sudo svn commit web/trunk/webroot/css/backend.css web/trunk/views/store_subscribers/list_all.ctp

手動運行上面的結果工作正常,但當我把它輸入sh,

svn st | grep ? -v | grep gearman -v | awk '{print $2;}' | xargs echo | awk '{ print "sudo svn commit " $0; }' | sh

輸出:

Received SIGHUP or SIGTERM
svn: Commit failed (details follow):
svn: system('/usr/bin/editor svn-commit.tmp') returned 256

嘗試:

sudo svn -q commit

-q是靜默開關,不應強制svn打開編輯器以輸入提交消息:)

理想情況下,您還應通過-m開關指定消息

http://svnbook.red-bean.com/en/1.1/re06.html

您可以使用backticks模擬xargs的便利性

代替:

svn st | grep ? -v | grep config/core.php -v | awk '{print $2;}' | xargs sudo svn commit

你可以試試:

svn ci `svn st | grep ? -v | grep config/core.php -v | awk '{print $2;}'`

只需將xargs命令放在最后,將查詢包裝在backticks ,然后將svn ci添加到示例的前面。

主要是你需要在svn commit之前svn add svn commit 例如,這不起作用:

$ touch testfile
$ svn st
$ svn commit testfile -m 'playing with svn'
svn: Commit failed (details follow):
svn: '/cygdrive/c/web/cpoe_ordersets/testfile' is not under version control

但是,如果我記得svn add它它是有效的。

$ svn add testfile
A         testfile

$ svn commit testfile -m 'playing with svn'
Adding         testfile
Transmitting file data .
Committed revision 1505.

因此,您可能希望在提交之前向管道添加svn add命令,或者更可能是您真正想要的那樣

  1. 然后在根目錄中運行svn add * --force以添加所有未版本控制的文件
  2. svn revert config/core.php你不想添加的svn revert config/core.php
  3. 運行svn commit -m "I added some unversioned files"在根目錄中svn commit -m "I added some unversioned files"以提交所有添加的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM