小霜 發表於 2023-9-5 00:00:00

详解Linux上svn命令行批量操作

<p>
        <strong>详解Linux上svn命令行批量操作</strong></p>
<p>
          虽然说git很好,大多数时候我也是使用git,但是有时候因为一些原因,不得不使用svn,而在linux上使用svn是没有像windows上的tortoisesvn的软件的(网上有说有类似的,但是折腾了很久仍然没有成功),所以直接来命令行吧。</p>
<p>
                我们直接安装svn就好,然后文件修改之后使用命令</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_375897">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">svn status</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
                查看文件的跟踪信息,这里会使用一些代号,对应的大概是</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_600035">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">“ ” 无修改</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">“A” 新增</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">“C” 冲突</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">“D” 删除</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">“G” 合并</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">“I” 忽略</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">“M” 改变</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">“R” 替换</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">“X” 未纳入版本控制,但被外部定义所用</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash plain">“?” 未纳入版本控制</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash plain">“!” 该项目已遗失 (被非 svn 命令所删除) 或是不完整</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash plain">“~” 版本控制下的项目与其它类型的项目重名</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
                这里我们需要考虑的是“缺失”和“未纳入版本控制“,也就是”!“和”?“,直接使用下面的命令即可</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_825755">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">svn add `svn status |</code><code class="bash functions">grep</code> <code class="bash plain">? |</code><code class="bash functions">awk</code> <code class="bash string">'{print $2}'</code><code class="bash plain">`</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">svn delete `svn status |</code><code class="bash functions">grep</code> <code class="bash plain">! |</code><code class="bash functions">awk</code> <code class="bash string">'{print $2}'</code><code class="bash plain">`</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
                注意命令中的反引号,是”esc“键下面,”1“旁边的那个,表示一个命令。</p>
<p>
                使用上面的命令之后,对应的文件的状态就会变成对应的“D”和“A”,然后就可以使用命令</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_787649">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">svn commit -m </code><code class="bash string">"xxxx"</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
                进行提交了! </p>
<p>
                这里提到的两种命令操作对于文件明中存在空格的情况会出问题</p>
<p>
                如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
<p>
        原文链接:https://my.oschina.net/songxinqiang/blog/543132</p>
頁: [1]
查看完整版本: 详解Linux上svn命令行批量操作