当我遇到问题时,我试图在Vim 7.3中自定义我的状态行.
我正在尝试将SVN信息放在状态行中,所以我做了类似这样的事情:
function! DrawStatusLine()
let svn = system("svn info")
let l:status = " "
let l:status = l:status . svn
let l:status = l:status . "%t" "tail of the filename
let l:status = l:status . "%*"
let l:status = l:status . "[%{strlen(&fenc)?&fenc:'none'}," "file encoding
let l:status = l:status . "%{&ff}]" "file format
let l:status = l:status . "%h" "help file flag
let l:status = l:status . "%m" "modified flag
let l:status = l:status . "%r" "read only flag
let …Run Code Online (Sandbox Code Playgroud) 我的任务是为我公司的开发人员编写一套SVN用户指南.
指南完全取决于用户的观点(例如,提交评论,何时提交),而不是从管理角度(例如何时标记,如何构建).行政指南将写在单独的文件中.
我们是一个也参与嵌入式开发的应用程序开发公司.所以我们的开发人员从HTML5和Flash到Java和C.我们的一些编码涉及分支非常大(数百万个文件)的代码库.其他部分涉及我们进行基础开发.
从用户(即咕噜咕噜的开发人员)的角度来看,是否有使用SVN的最佳实践?
我希望我的SVN服务器mycommand在完成对SVN子目录的提交时执行特定命令svn-rep/myfolder.
我该怎么办?我知道有预挂钩的钩子目录.但是我该如何制作一个自定义钩子呢?SVN如何知道何时调用哪个钩子 - 是否基于文件名?如果提交更改某些文件,我将如何限制挂钩才能执行svn-rep/myfolder?
需要明确的是:命令永远不会改变,它只是引用位于服务器某处的另一个脚本.
编辑:我刚刚实现post-commit并且为了测试目的,它应该将SVN目录的修订号附加到已经存在的(并且对于每个人都可写):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from subprocess import Popen, PIPE
dirRevisionCmd = 'svn info /var/www/main | grep -i "Letzte geänderte Rev"
process = Popen(headRevisionCmd, shell=True, stdout=PIPE, stderr=PIPE)
out, err = process.communicate()
with open("/var/lib/svn/rep/hooks/testfile", "a") as testfile:
testfile.write("err:" + err.strip() + "\n")
testfile.write("out:" + out.strip() + "\n")
Run Code Online (Sandbox Code Playgroud)
每次提交后,这会导致空标准输出:
www-data
err:
out:
Run Code Online (Sandbox Code Playgroud)
如果我post-commit手动执行'out'行包含一些文本.那为什么它不适用于SVN?
我使用的bat文件包含:
call TortoiseProc.exe /command:update /path:%updatepath% /closeonend:2 >test.txt
Run Code Online (Sandbox Code Playgroud)
但是test.txt是空的.我如何收到更新结果?例如,更新的文件,...谢谢.
我一直在Mac上使用Cornerstone客户端来更新项目,直到昨天没有警告我开始收到以下错误消息:
"Working copy '/Users/Si/Documents/workspace/CCA_NewAPI/src/com' is too old (format 10, created by Subversion 1.6)"
Run Code Online (Sandbox Code Playgroud)
我现在无法使用工作副本提交或执行任何其他操作.我将Cornerstone更新到最新版本,但这根本没有帮助.
一些研究告诉我使用终端导航到工作副本目录并运行'svn upgrade'但我收到以下结果:
Unknown command: 'upgrade'
Type 'svn help' for usage.
Run Code Online (Sandbox Code Playgroud)
感谢您对如何升级工作副本的任何帮助表示感谢.
我如何设法使TortoiseSVN(Windows 8上的64位)忽略所有Thumbs.db文件?我知道Settings-> Global Ignore Pattern存在.我进入了
*.db Thumbs.db thumbs.db
Run Code Online (Sandbox Code Playgroud)
在其他条目中,默认情况下.但是TortoiseSVN仍然不会忽略Thumbs.db文件.它们弹出为ToirtoiseSVN想要添加并提交到repo的新文件.
我是否需要更改其他设置?
我在网络共享上有一个存储库,在两台独立的机器上有工作目录.在更改我的本地工作目录并提交它们后,其他开发人员的计算机上的图标不会发生变化.
如果Dev转到Team> Synchronize with Repository,它会在Eclipse中的Synchronize视图中显示更改,但是如果项目与存储库不同步,我希望项目旁边的图标能够更改.
在Windows资源管理器中,TortoiseSVN也是如此.如果我们右键单击并检查存储库以进行修改,则会显示它们,但目录上的覆盖图标仍为绿色复选框.
我只是误解了我期望发生的事情,或者如果项目不再与存储库同步,是否有办法让这些图标发生变化?
对于你们中的一些人来说,这听起来像是一个非常基本的问题,但我是颠覆的新手,希望你对这个问题有所建议:
如果B人在我之前修改并提交了他的更改,我该如何处理需要花费数天时间编写代码的大型提交?他的提交涉及与我相同的文件.
总而言之,这是工作流程:
考虑到rev.1和rev.2之间已经更改的代码量,推送提交A是否有风险?
抱歉没有问题,但我只是想避免破坏项目的代码.在最糟糕的情况下,我重写了我的部分代码,之前检查了repo到rev.2.
下载整个Subversion存储库的命令是什么,即存储库本身?我知道这不是svn checkout因为只下载头版本.我正在寻找类似于git clone或的东西hg clone.
我在本地计算机上运行svn的一些计划任务,如:update.有时更新无法运行清理问题,因此我添加了计划任务以进行清理,但是如果没有我的干预它就无法运行:始终显示清除对话框:

如何不显示此对话框?真的我什么都没改变 - 只需单击按钮确定.
谢谢.
svn ×10
tortoisesvn ×4
commit ×1
cornerstone ×1
dialog ×1
eclipse ×1
java ×1
output ×1
post-commit ×1
redirect ×1
subclipse ×1
svn-hooks ×1
svnignore ×1
task ×1
thumbnails ×1
updates ×1
upgrade ×1
vim ×1
windows ×1
working-copy ×1