# Simplified Chinese translation for TortoiseSVN # Copyright (C) 2004-2008 the TortoiseSVN team # This file is distributed under the same license as TortoiseSVN # # Last commit by: # $Author$ # $Date$ # $Rev$ # # Authors: # Dongsheng Song , 2006-2009 # Garfield Yao , 2009 # rocksun , 2006-2007 # amo , 2006 # Jaxx_chen , 2006 # kkeric , 2006 # liuheqi , 2006 # lulu2me , 2006 # Stan , 2006 # sunjing , 2006 # Tan Ruyan , 2006 # xingyu.wang , 2006 # yasakya , 2006 # # Update to new pot: # msgmerge --update TortoiseSVN_zh_CN.po TortoiseSVN.pot # # Check translation: # msgfmt --statistics -c TortoiseSVN_zh_CN.po # # Please format your translation before commit: # msgmerge --width=80 -o TortoiseSVN_zh_CN_new.po TortoiseSVN_zh_CN.po TortoiseSVN.pot # mv -f TortoiseSVN_zh_CN_new.po TortoiseSVN_zh_CN.po # # Dictionary: # BASE revision 基础版本 # blame 追溯 # checkout 检出 # default 默认 # HEAD revision 最新版本 # overlay 重载 # remove 删除 # rename 改名 # repository 版本库 # revert 恢复 # revision 版本 # Subversion book Subversion 手册 # undo 撤销 # unified diff 标准差异 # unversioned 未版本控制 # versioned 已版本控制 # working copy 工作副本 # ... # msgid "" msgstr "" "Project-Id-Version: TortoiseSVN Documentation\n" "POT-Creation-Date: 2009-12-09 09:22 +0000\n" "PO-Revision-Date: 2009-12-14 22:11-0500\n" "Last-Translator: Garfield Yao \n" "Language-Team: TortoiseSVN translation team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. #. (None) msgid "@@image: 'images/svn_move.png'; md5=THIS FILE DOESN'T EXIST" msgstr "" #. (title) #. (secondary) msgid "TortoiseSVN" msgstr "TortoiseSVN" #. (subtitle) msgid "A Subversion client for Windows" msgstr "针对 Windows 平台的 Subversion 客户端" #. TRANSLATORS: "$MajorVersion$.$MinorVersion$.$MicroVersion$" is a literal value and should not be translated #. (subtitle) msgid "Version $MajorVersion$.$MinorVersion$.$MicroVersion$" msgstr "版本 $MajorVersion$.$MinorVersion$.$MicroVersion$" #. (edition) msgid "First" msgstr "首先" #. (firstname) msgid "Stefan" msgstr "Stefan" #. (surname) msgid "Küng" msgstr "Küng" #. (firstname) msgid "Lübbe" msgstr "Lübbe" #. (surname) msgid "Onken" msgstr "Onken" #. (firstname) msgid "Simon" msgstr "Simon" #. (surname) msgid "Large" msgstr "Large" #. (title) msgid "Preface" msgstr "前言" #. (para) msgid "Do you work in a team?" msgstr "你是否在一个团队中工作?" #. (para) msgid "" "Has it ever happened that you were working on a file, and someone else was " "working on the same file at the same time? Did you lose your changes to that " "file because of that?" msgstr "" "是否发生过这样的情况: 当你在修改一个文件时,其他人也在修改这个文件?而你是否因" "此丢失过自己所作的修改呢?" #. (para) msgid "" "Have you ever saved a file, and then wanted to revert the changes you made? " "Have you ever wished you could see what a file looked like some time ago?" msgstr "" "是否曾经保存完一个修改,然后又想把个文件恢复到修改以前的状态?是否曾经希望能够" "看到一个文件以前某个时间点的状态?" #. (para) msgid "" "Have you ever found a bug in your project and wanted to know when that bug " "got into your files?" msgstr "是否曾经在项目中发现了一个 BUG,然后想调查它是什么时候产生的?" #. (para) msgid "" "If you answered yes to one of these questions, then " "TortoiseSVN is for you! Just read on to find out how TortoiseSVN can help you " "in your work. It's not that difficult." msgstr "" "如果这些问题中的任何一个回答的话,那么 TortoiseSVN 就是为你准" "备的!请继续读下去,你就能知道怎样让 TortoiseSVN 对你的工作起到帮助,这其实并" "不困难。" #. (title) msgid "Audience" msgstr "致读者" #. (para) msgid "" "This book is written for computer literate folk who want to use Subversion to " "manage their data, but are uncomfortable using the command line client to do " "so. Since TortoiseSVN is a windows shell extension it's assumed that the user " "is familiar with the windows explorer and knows how to use it." msgstr "" "本书面向这样的计算机用户: 希望使用 Subversion 管理数据,但又不愿意使用 " "Subversion 的命令行客户端。因为 TortoiseSVN 是 Windows 的外壳扩展应用,所以我" "们假设用户很熟悉 Windows 资源管理器的使用。" #. (title) msgid "Reading Guide" msgstr "阅读指南" #. (para) msgid "" "This explains a little about the TortoiseSVN " "project, the community of people who work on it, and the licensing conditions " "for using it and distributing it." msgstr "" "在里简单介绍了 TortoiseSVN 项目,以及其开发团" "体,还介绍了使用及分发该软件应遵循的许可证。" #. (para) msgid "" "The explains what TortoiseSVN is, what " "it does, where it comes from and the basics for installing it on your PC." msgstr "" "在一章里解释了 TortoiseSVN 是什么,能够做" "什么,它的开发过程以及在你的个人电脑中安装它的基础知识。" #. (para) msgid "" "In we give a short introduction to the " "Subversion revision control system which underlies " "TortoiseSVN. This is borrowed from the documentation for the Subversion " "project and explains the different approaches to version control, and how " "Subversion works." msgstr "" "在一章里简短地介绍了 Subversion 版本控制系统,Subversion 是 TortoiseSVN 的基础。这一章借用了 " "Subversion 项目的文档,介绍了各种版本控制模式,以及 Subversion 的工作原理。" #. (para) msgid "" "The chapter on explains how to set up a " "local repository, which is useful for testing Subversion and TortoiseSVN " "using a single PC. It also explains a bit about repository administration " "which is also relevant to repositories located on a server. There is also a " "section here on how to setup a server if you need one." msgstr "" "这一章解释了如何设置一个本地版本库,本地版" "本库对于在一台 PC 上测试 Subversion 和 TortoiseSVN 非常有用,这一章也介绍了一" "点版本库管理,也就是如何管理服务器上的版本库。如果你需要一台服务器,这里还有一" "节介绍如何搭建服务器" #. (para) msgid "" "The is the most important section as it explains " "all the main features of TortoiseSVN and how to use them. It takes the form " "of a tutorial, starting with checking out a working copy, modifying it, " "committing your changes, etc. It then progresses to more advanced topics." msgstr "" "是最重要的章节,介绍了 TortoiseSVN 最主要特性的使" "用。它以教程的形式,从检出一个工作副本开始,然后修改,提交你的修改,之后进入高" "级主题。" #. (para) msgid "" " is a separate program included with " "TortoiseSVN which can extract the information from your working copy and " "write it into a file. This is useful for including build information in your " "projects." msgstr "" " 是 TortoiseSVN 的一个独立程序,可以从工作副" "本抽取信息并记录到一个文件,可以用来在项目中包含构建信息。" #. (para) msgid "" "The section answers some common questions " "about performing tasks which are not explicitly covered elsewhere." msgstr "" "这一节回答了一些操作方面的常见问题。这些常见问题" "在其他章节没有被明确的提到过。" #. (para) msgid "" "The section on shows how the TortoiseSVN " "GUI dialogs can be called from the command line. This is useful for scripting " "where you still need user interaction." msgstr "" " 这一节展示了如何使用命令行调用 " "TortoiseSVN 的 GUI 对话框,当你在使用脚本时仍希望用户交互时非常有用。" #. (para) msgid "" "The give a correlation between TortoiseSVN " "commands and their equivalents in the Subversion command line client " "svn.exe." msgstr "" "给出了 TortoiseSVN 命令与其对应的 Subversion 命令" "行工具 svn.exe 命令之间的关系。" #. (title) msgid "TortoiseSVN is free!" msgstr "TortoiseSVN 是完全免费的!" #. (para) msgid "" "TortoiseSVN is free. You don't have to pay to use it, and you can use it any " "way you want. It is developed under the GNU General Public License (GPL)." msgstr "" "TortoiseSVN 是免费的,你不需要为使用它而付费,可以用任何你希望的方式使用它,它" "开发的许可证是 GNU General Public License (GPL)。" #. (para) msgid "" "TortoiseSVN is an Open Source project. That means you have full read access " "to the source code of this program. You can browse it on this link http://" "tortoisesvn.tigris.org/svn/tortoisesvn/. You will be " "prompted to enter username and password. The username is guest, and the password must be left blank. The most recent version (where " "we're currently working) is located under /trunk/, and " "the released versions are located under /tags/." msgstr "" "TortoiseSVN 是一个开源软件项目。这意味着你可以取得它的全部源代码。你可以访问以" "下链接得到源代码:http://code.google.com/p/tortoisesvn/source/browse/。你会被提示输入用户名称和密码。用户名称是 guest,不" "能填写密码。最新的版本(我们当前正在开发的)放在 /trunk/ ," "已发布版本放在 /tags/ 。" #. (title) msgid "Community" msgstr "社区" #. (para) msgid "" "Both TortoiseSVN and Subversion are developed by a community of people who " "are working on those projects. They come from different countries all over " "the world and work together to create wonderful programs." msgstr "" "TortoiseSVN 和 Subversion 由工作在这些项目的社区成员开发。他们来自全世界不同的" "国家,联合起来创造美妙的程序。" #. (title) msgid "Acknowledgments" msgstr "致谢" #. (term) msgid "Tim Kemp" msgstr "Tim Kemp" #. (para) msgid "for founding the TortoiseSVN project" msgstr "TortoiseSVN 项目的发起者" #. (term) msgid "Stefan Küng" msgstr "Stefan Küng" #. (para) msgid "for the hard work to get TortoiseSVN to what it is now" msgstr "TortoiseSVN 的主要开发者" #. (term) msgid "Lübbe Onken" msgstr "Lübbe Onken" #. (para) msgid "" "for the beautiful icons, logo, bug hunting, translating and managing the " "translations" msgstr "制作了漂亮的图标,Logo,跟踪错误,翻译并且维护翻译结果" #. (term) msgid "Simon Large" msgstr "Simon Large" #. (para) msgid "for helping with the documentation and bug hunting" msgstr "帮助编写文档和跟踪错误" #. (term) msgid "The Subversion Book" msgstr "Subversion 手册" #. (para) msgid "" "for the great introduction to Subversion and its chapter 2 which we copied " "here" msgstr "为了对 Subversion 大量介绍,我们复制了其第二章" #. (term) msgid "The Tigris Style project" msgstr "Tigris 样式项目" #. (para) msgid "for some of the styles which are reused in this documentation" msgstr "我们在本文重用了一些样式" #. (term) msgid "Our Contributors" msgstr "我们的贡献者" #. (para) msgid "" "for the patches, bug reports and new ideas, and for helping others by " "answering questions on our mailing list." msgstr "为了那些补丁,问题报告和新创意,以及在邮件列表里通过回答问题帮助别人。" #. (term) msgid "Our Donators" msgstr "我们的捐赠者" #. (para) msgid "for many hours of joy with the music they sent us" msgstr "他们发送给我们的那些音乐带来了快乐" #. (title) msgid "Terminology used in this document" msgstr "本文使用的术语" #. (para) msgid "" "To make reading the docs easier, the names of all the screens and Menus from " "TortoiseSVN are marked up in a different font. The Log Dialog for instance." msgstr "" "为了使文档更加易读,所有 TortoiseSVN 的窗口名和菜单名使用不同的字体,例如" "日志对话框。" #. (para) msgid "" "A menu choice is indicated with an arrow. TortoiseSVNShow Log means: select " "Show Log from the TortoiseSVN " "context menu." msgstr "" "菜单选择使用箭头显示。TortoiseSVN" "显示日志的含义是: 从TortoiseSVN右键菜单选择显示日志。" #. (para) msgid "" "Where a local context menu appears within one of the TortoiseSVN dialogs, it " "is shown like this: Context MenuSave As ..." msgstr "" "在 TortoiseSVN 对话框中出现的右键菜单,可能是这个样子: 右" "键菜单另存为 ..." #. (para) msgid "" "User Interface Buttons are indicated like this: Press OK to continue." msgstr "用户界面按钮的显示形式: 点击OK以继续。" #. (para) #, fuzzy msgid "" "User Actions are indicated using a bold font. Alt+A: press " "the Alt-Key on your keyboard and while holding it down press " "the A-Key as well. Right-drag: press the " "right mouse button and while holding it down drag the " "items to the new location." msgstr "" "用户动作使用粗体显示。ALT+A: 按下键盘的ALT" "键,同时按下A键,右键拖拽: 点击鼠标邮件并保" "持,将项目拖放到新位置。" #. (para) msgid "" "System output and keyboard input is indicated with a different font as well." msgstr "系统输出和键盘输入也使用不同的字体显示。" #. (para) msgid "Important notes are marked with an icon." msgstr "使用图标标记的重要提示。" #. (para) msgid "Tips that make your life easier." msgstr "技巧让你的生活更加简单。" #. (para) msgid "Places where you have to be careful what you are doing." msgstr "操作时需要小心的地方。" #. (para) msgid "" "Where extreme care has to be taken, data corruption or other nasty things may " "occur if these warnings are ignored." msgstr "" "需要特别关注的地方,如果忽略这些警告,会导致数据损坏或其他令人讨厌的事情。" #. (title) #. (title) #. (title) msgid "Introduction" msgstr "简介" #. (primary) msgid "version control" msgstr "版本控制" #. (para) msgid "" "Version control is the art of managing changes to information. It has long " "been a critical tool for programmers, who typically spend their time making " "small changes to software and then undoing or checking some of those changes " "the next day. Imagine a team of such developers working concurrently - and " "perhaps even simultaneously on the very same files! - and you can see why a " "good system is needed to manage the potential chaos." msgstr "" "版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作" "出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - " "或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜" "在的混乱。" #. (title) msgid "What is TortoiseSVN?" msgstr "什么是 TortoiseSVN?" #. (para) msgid "" "TortoiseSVN is a free open-source client for the Subversion version control system. That is, TortoiseSVN manages files and " "directories over time. Files are stored in a central repository. The repository is much like an ordinary file server, except that " "it remembers every change ever made to your files and directories. This " "allows you to recover older versions of your files and examine the history of " "how and when your data changed, and who changed it. This is why many people " "think of Subversion and version control systems in general as a sort of " "time machine." msgstr "" "TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客" "户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。" "你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的" "修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种时间机器。" #. (para) msgid "" "Some version control systems are also software configuration management (SCM) " "systems. These systems are specifically tailored to manage trees of source " "code, and have many features that are specific to software development - such " "as natively understanding programming languages, or supplying tools for " "building software. Subversion, however, is not one of these systems; it is a " "general system that can be used to manage any collection " "of files, including source code." msgstr "" "某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管" "理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提" "供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理" "任何类型的文件集,包括源代码。" #. (title) msgid "TortoiseSVN's History" msgstr "TortoiseSVN 的历史" #. (para) msgid "" "In 2002, Tim Kemp found that Subversion was a very good version control " "system, but it lacked a good GUI client. The idea for a Subversion client as " "a Windows shell integration was inspired by the similar client for CVS named " "TortoiseCVS." msgstr "" "在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形" "化客户端,创建一个作为 Windows 外壳集成的 Subversion 客户端的创意来自 " "TortoiseCVS,一个非常类似的 CVS 客户端。" #. (para) msgid "" "Tim studied the source code of TortoiseCVS and used it as a base for " "TortoiseSVN. He then started the project, registered the domain " "tortoisesvn.org and put the source code online. During " "that time, Stefan Küng was looking for a good and free version control system " "and found Subversion and the source for TortoiseSVN. Since TortoiseSVN was " "still not ready for use then he joined the project and started programming. " "Soon he rewrote most of the existing code and started adding commands and " "features, up to a point where nothing of the original code remained." msgstr "" "Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,然后开始这个项" "目,注册了域名 tortoisesvn.org,并将源代码提交到网上。此时 " "Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 和 " "TortoiseSVN,由于 TortoiseSVN 还不能够使用,他加入了这个项目并开始编程。很快他" "便重写了大多数代码,并且开始添加命令和特性,此时,最初的代码都已经不复存在了。" #. (para) msgid "" "As Subversion became more stable it attracted more and more users who also " "started using TortoiseSVN as their Subversion client. The user base grew " "quickly (and is still growing every day). That's when Lübbe Onken offered to " "help out with some nice icons and a logo for TortoiseSVN. And he takes care " "of the website and manages the translation." msgstr "" "随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们" "的 Subversion 客户端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了许多漂" "亮图标和 TortoiseSVN 的 logo,细心照料网站并且管理翻译。" #. (title) msgid "TortoiseSVN's Features" msgstr "TortoiseSVN 的特性" #. (para) msgid "" "What makes TortoiseSVN such a good Subversion client? Here's a short list of " "features." msgstr "" "是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列" "表。" #. (term) msgid "Shell integration" msgstr "外壳集成" #. (primary) msgid "Windows shell" msgstr "Windows 外壳" #. (primary) msgid "explorer" msgstr "资源管理器" #. (para) msgid "" "TortoiseSVN integrates seamlessly into the Windows shell (i.e. the explorer). " "This means you can keep working with the tools you're already familiar with. " "And you do not have to change into a different application each time you need " "functions of the version control!" msgstr "" "TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工" "作,不需要在每次使用版本控制功能时切换应用程序。" #. (para) msgid "" "And you are not even forced to use the Windows Explorer. TortoiseSVN's " "context menus work in many other file managers, and in the File/Open dialog " "which is common to most standard Windows applications. You should, however, " "bear in mind that TortoiseSVN is intentionally developed as extension for the " "Windows Explorer. Thus it is possible that in other applications the " "integration is not as complete and e.g. the icon overlays may not be shown." msgstr "" "并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他" "文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记," "TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的" "并不完整,例如重载图标可能不会显示。" #. (term) msgid "Icon overlays" msgstr "重载图标" #. (para) msgid "" "The status of every versioned file and folder is indicated by small overlay " "icons. That way you can see right away what the status of your working copy " "is." msgstr "" "每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的" "状态。" #. (term) msgid "Easy access to Subversion commands" msgstr "Subversion 命令的简便访问" #. (para) msgid "" "All Subversion commands are available from the explorer context menu. " "TortoiseSVN adds its own submenu there." msgstr "" "所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜" "单。" #. (para) msgid "" "Since TortoiseSVN is a Subversion client, we would also like to show you some " "of the features of Subversion itself:" msgstr "" "因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 " "Subversion 本身的特性: " #. (term) msgid "Directory versioning" msgstr "目录版本控制" #. (para) msgid "" "CVS only tracks the history of individual files, but Subversion implements a " "virtual versioned filesystem that tracks changes to whole " "directory trees over time. Files and directories are " "versioned. As a result, there are real client-side move " "and copy commands that operate on files and directories." msgstr "" "CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个虚拟文件" "系统,可以追踪整个目录树的修改,文件目录都是版本控制" "的,结果就是可以在客户端对文件和目录执行移动复制" "命令。" #. (term) msgid "Atomic commits" msgstr "原子提交" #. (para) msgid "" "A commit either goes into the repository completely, or not at all. This " "allows developers to construct and commit changes as logical chunks." msgstr "" "提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。" #. (term) msgid "Versioned metadata" msgstr "版本控制的元数据" #. (para) msgid "" "Each file and directory has an invisible set of properties " "attached. You can invent and store any arbitrary key/value pairs you wish. " "Properties are versioned over time, just like file contents." msgstr "" "每个文件和目录都有一组附加的属性,你可以发明和保存任意的键/值" "对,属性是版本控制的,就像文件内容。" #. (term) msgid "Choice of network layers" msgstr "可选的网络层" #. (para) msgid "" "Subversion has an abstracted notion of repository access, making it easy for " "people to implement new network mechanisms. Subversion's advanced network server is a module for the Apache web server, which speaks a " "variant of HTTP called WebDAV/DeltaV. This gives Subversion a big advantage " "in stability and interoperability, and provides various key features for " "free: authentication, authorization, wire compression, and repository " "browsing, for example. A smaller, standalone Subversion server process is " "also available. This server speaks a custom protocol which can be easily " "tunneled over ssh." msgstr "" "Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制," "Subversion 的高级服务器是 Apache 网络服务器的一个模块,使用 " "HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大" "的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也" "有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松" "的用 SSH 封装。" #. (term) msgid "Consistent data handling" msgstr "一致的数据处理" #. (para) msgid "" "Subversion expresses file differences using a binary differencing algorithm, " "which works identically on both text (human-readable) and binary (human-" "unreadable) files. Both types of files are stored equally compressed in the " "repository, and differences are transmitted in both directions across the " "network." msgstr "" "Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人" "类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网" "络上双向传递。" #. (term) msgid "Efficient branching and tagging" msgstr "高效的分支和标签" #. (para) msgid "" "The cost of branching and tagging need not be proportional to the project " "size. Subversion creates branches and tags by simply copying the project, " "using a mechanism similar to a hard-link. Thus these operations take only a " "very small, constant amount of time, and very little space in the repository." msgstr "" "分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项" "目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时" "间,以及很小的版本库空间。" #. (term) msgid "Hackability" msgstr "良好的维护能力" #. (para) msgid "" "Subversion has no historical baggage; it is implemented as a collection of " "shared C libraries with well-defined APIs. This makes Subversion extremely " "maintainable and usable by other applications and languages." msgstr "" "Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这" "使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用。" #. (title) msgid "Installing TortoiseSVN" msgstr "安装 TortoiseSVN" #. (title) msgid "System requirements" msgstr "系统要求" #. (para) msgid "" "TortoiseSVN runs on Windows 2000 SP2, Windows XP or higher. Windows 98, " "Windows ME and Windows NT4 are no longer supported since TortoiseSVN 1.2.0, " "but you can still download the older versions if you really need them." msgstr "" "TortoiseSVN 可以运行在 Windows 2000 SP2,Windows XP 或更高的版本。" "TortoiseSVN 1.2.0 以后不再支持 Windows 98, Windows ME 和 Windows NT4,但是如果" "需要的话,你仍旧可以下载以前的版本。" #. (para) msgid "" "If you encounter any problems during or after installing TortoiseSVN please " "refer to first." msgstr "" "如果在安装 TortoiseSVN 时发现了任何问题,请首先参考。" #. (title) msgid "Installation" msgstr "安装" #. (primary) msgid "install" msgstr "安装" #. (para) msgid "" "TortoiseSVN comes with an easy to use installer. Double click on the " "installer file and follow the instructions. The installer will take care of " "the rest." msgstr "" "TortoiseSVN 提供一个容易使用的安装程序。双击安装程序文件并按照提示操作。安装程" "序将会完成剩余的步骤。" #. (para) msgid "You need Administrator privileges to install TortoiseSVN." msgstr "你需要管理员权限来安装 TortoiseSVN。" #. (title) msgid "Language Packs" msgstr "语言包" #. (primary) msgid "language packs" msgstr "语言包" #. (primary) msgid "translations" msgstr "翻译" #. (para) msgid "" "The TortoiseSVN user interface has been translated into many different " "languages, so you may be able to download a language pack to suit your needs. " "You can find the language packs on our translation status page. " "And if there is no language pack available yet, why not join the team and " "submit your own translation ;-)" msgstr "" "TortoiseSVN 的界面已经翻译成了许多种语言,所以你可以下载符合你要求的语言包。你" "可以在我们的翻译状态页里看到语言包。如果没有你需要的,为" "什么不加入我们的团队并且提交你的翻译呢?-)" #. (para) msgid "" "Each language pack is packaged as a .exe installer. Just " "run the install program and follow the instructions. Next time you restart, " "the translation will be available." msgstr "" "每一种语言包都是一个 .exe 安装程序,只要根据向导运行安装程" "序,当你下一次启动程序时,翻译就会生效。" #. (title) msgid "Spellchecker" msgstr "拼写检查器" #. (primary) msgid "spellchecker" msgstr "拼写检查器" #. (primary) msgid "dictionary" msgstr "词典" #. (para) msgid "" "TortoiseSVN includes a spell checker which allows you to check your commit " "log messages. This is especially useful if the project language is not your " "native language. The spell checker uses the same dictionary files as OpenOffice and " "Mozilla." msgstr "" "TortoiseSVN 包括了一个拼写检查器,可以检查你的提交日志信息,当你的项目语言不是" "你的本地语言时尤其有用,拼写检查器使用 OpenOfficeMozilla 相同的词典。" #. (para) msgid "" "The installer automatically adds the US and UK English dictionaries. If you " "want other languages, the easiest option is simply to install one of " "TortoiseSVN's language packs. This will install the appropriate dictionary " "files as well as the TortoiseSVN local user interface. Next time you restart, " "the dictionary will be available too." msgstr "" "安装程序自动添加 US 和 UK 英语词典。如果你需要其他语言,最简单的方法是安装 " "TortoiseSVN 的语言包,这会安装合适的词典文件和 TortoiseSVN 的本地用户界面,当" "你下一次启动程序时,词典也将会生效。" #. (para) msgid "" "Or you can install the dictionaries yourself. If you have OpenOffice or " "Mozilla installed, you can copy those dictionaries, which are located in the " "installation folders for those applications. Otherwise, you need to download " "the required dictionary files from http://wiki.services.openoffice." "org/wiki/Dictionaries" msgstr "" "或者你也可以自己安装词典。如果你安装了 OpenOffice 或 Mozilla,你可以复制这些词" "典,位于那些应用的安装目录。否则,你需要从 http://wiki.services.openoffice." "org/wiki/Dictionaries 下载必要的词典文件。" #. (filename) msgid "en_US.aff" msgstr "en_US.aff" #. (filename) msgid "en_US.dic" msgstr "en_US.dic" #. (para) msgid "" "Once you have got the dictionary files, you probably need to rename them so " "that the filenames only have the locale chars in it. Example: Then just copy them to the bin sub-folder of the " "TortoiseSVN installation folder. Normally this will be C:\\Program " "Files\\TortoiseSVN\\bin. If you don't want to litter the " "bin sub-folder, you can instead place your spell checker " "files in C:\\Program Files\\TortoiseSVN\\Languages. If " "that folder isn't there, you have to create it first. The next time you start " "TortoiseSVN, the spell checker will be available." msgstr "" "一旦你得到了词典文件,你可能需要重命名文件,这样文件名只包含位置信息,例如: " "然后把它们复制到TortoiseSVN 安装目录的 bin 子目录,通常情况下,可能是在 C:\\Program Files" "\\TortoiseSVN\\bin。如果你不希望弄乱bin子目" "录,你可以将拼写检查文件放置在C:\\Program Files\\TortoiseSVN" "\\Languages,如果那个目录不存在,你可以自己创建,当你下次启动" "TortoiseSVN 时,就可以使用拼写检查器。" #. (para) msgid "" "Check the tsvn:projectlanguage setting. Refer to for information about setting project " "properties." msgstr "" "检查 tsvn:projectlanguage 设置,关于设置项目属性可以参考" "。" #. (para) msgid "" "If no project language is set, or that language is not installed, try the " "language corresponding to the Windows locale." msgstr "" "如果没有设置项目语言,或者那个语言没有安装,尝试使用对应 Windows 区域信息的语" "言。" #. (para) msgid "" "If the exact Windows locale doesn't work, try the Base " "language, eg. de_CH (Swiss-German) falls back to " "de_DE (German)." msgstr "" "如果精确的 Windows 区域信息不起作用,可以试一下基础语言,例如" "将 de_CH(Swiss-German) 修改为 de_DE " "(German)。" #. (para) msgid "" "If none of the above works, then the default language is English, which is " "included with the standard installation." msgstr "如果以上都没有效果,则缺省语言是英语,包含在标准安装中。" #. (para) msgid "" "If you install multiple dictionaries, TortoiseSVN uses these rules to select " "which one to use. " msgstr "" "如果你安装了多个词典,TortoiseSVN 使用下面的规则选择一个。" #. (title) #, fuzzy msgid "Basic Version-Control Concepts" msgstr "基本概念" #. (primary) msgid "Subversion book" msgstr "Subversion 手册" #. (para) msgid "" "This chapter is a slightly modified version of the same chapter in the " "Subversion book. An online version of the Subversion book is available here: " "http://svnbook.red-" "bean.com/." msgstr "" "本章修改自《使用 Subversion 进行版本管理》的相同章节,它的在线版本位于: " "http://svnbook.red-" "bean.com/。" #. (para) msgid "" "This chapter is a short, casual introduction to Subversion. If you're new to " "version control, this chapter is definitely for you. We begin with a " "discussion of general version control concepts, work our way into the " "specific ideas behind Subversion, and show some simple examples of Subversion " "in use." msgstr "" "这一章是对 Subversion 一个简短随意的介绍,如果你对版本控制很陌生,这一章节完全" "是为你准备的,我们从讨论基本概念开始,深入理解 Subversion 的思想,然后展示许多" "简单的实例。" #. (para) msgid "" "Even though the examples in this chapter show people sharing collections of " "program source code, keep in mind that Subversion can manage any sort of file " "collection - it's not limited to helping computer programmers." msgstr "" "尽管我们的例子展示了人们如何分享程序源代码,仍然要记住 Subversion 可以控制所有" "类型的文件-它并没有限制只为程序员工作。" #. (title) #. (title) #. (title) msgid "The Repository" msgstr "版本库" #. (primary) #. (primary) msgid "repository" msgstr "版本库" #. (para) msgid "" "Subversion is a centralized system for sharing information. At its core is a " "repository, which is a central store of data. The " "repository stores information in the form of a filesystem tree - a typical hierarchy of files and directories. Any number of " "clients connect to the repository, and then read or " "write to these files. By writing data, a client makes the information " "available to others; by reading data, the client receives information from " "others." msgstr "" "Subversion 是一种集中的分享信息的系统,它的核心是版本库,储存所有的数据,版本库按照文件树形式储存数" "据-包括文件和目录,任意数量的客户端可以连接到版本库," "读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修" "改。" #. (title) msgid "A Typical Client/Server System" msgstr "一个典型的客户/服务器系统" #. (para) msgid "" "So why is this interesting? So far, this sounds like the definition of a " "typical file server. And indeed, the repository is a " "kind of file server, but it's not your usual breed. What makes the Subversion " "repository special is that it remembers every change " "ever written to it: every change to every file, and even changes to the " "directory tree itself, such as the addition, deletion, and rearrangement of " "files and directories." msgstr "" "所以为什么这很有趣呢?讲了这么多,让人感觉这是一种普通的文件服务器,但实际上," "版本库另一种文件服务器,而不是你常见的那一种。最特别的" "是 Subversion 会记录每一次的更改,不仅针对文件也包括目录" "本身,包括增加、删除和重新组织文件和目录。" #. (para) #, fuzzy msgid "" "When a client reads data from the repository, it normally sees only the " "latest version of the filesystem tree. But the client also has the ability to " "view previous states of the filesystem. For example, a " "client can ask historical questions like, what did this directory " "contain last Wednesday?, or who was the last person to change " "this file, and what changes did they make? These are the sorts of " "questions that are at the heart of any version control system: systems that are designed to record and track changes to data " "over time." msgstr "" "当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看" "以前的任何一个版本。举个例子,一个客户端可以问这样的历史" "问题,上个星期三的目录是怎样的?,或者是谁最后一个修改了" "这个文件,改动了什么?,这些是任何版本控制系统" "的核心问题: 系统是设计用来记录和跟踪每次修改的。" #. (title) msgid "Versioning Models" msgstr "版本模型" #. (para) msgid "" "All version control systems have to solve the same fundamental problem: how " "will the system allow users to share information, but prevent them from " "accidentally stepping on each other's feet? It's all too easy for users to " "accidentally overwrite each other's changes in the repository." msgstr "" "所有的版本控制系统都需要解决这样一个基础问题: 怎样让系统允许用户共享信息,而不" "会让他们因意外而互相干扰?版本库里意外覆盖别人的更改非常的容易。" #. (title) msgid "The Problem of File-Sharing" msgstr "文件共享的问题" #. (para) msgid "" "Consider this scenario: suppose we have two co-workers, Harry and Sally. They " "each decide to edit the same repository file at the same time. If Harry saves " "his changes to the repository first, then it's possible that (a few moments " "later) Sally could accidentally overwrite them with her own new version of " "the file. While Harry's version of the file won't be lost forever (because " "the system remembers every change), any changes Harry made won't be present in Sally's newer version of the file, because she never " "saw Harry's changes to begin with. Harry's work is still effectively lost - " "or at least missing from the latest version of the file - and probably by " "accident. This is definitely a situation we want to avoid!" msgstr "" "考虑这个情景,我们有两个共同工作者,Harry 和 Sally,他们想同时编辑版本库里的同" "一个文件,如果首先 Harry 保存它的修改,过了一会,Sally 可能凑巧用自己的版本覆" "盖了这些文件,Harry 的更改不会永远消失(因为系统记录了每次修改),Harry 所有的修" "改不会出现在 Sally 的文件中,所以 Harry 的工作还是丢失了" "—至少是从最新的版本中丢失了—而且是意外的,这就是我们要明确避免的情" "况!" #. (title) msgid "The Problem to Avoid" msgstr "需要避免的问题" #. (title) #. (title) msgid "The Lock-Modify-Unlock Solution" msgstr "锁定-修改-解锁 方案" #. (para) #, fuzzy msgid "" "Many version control systems use a lock-modify-unlock " "model to address this problem, which is a very simple solution. In such a " "system, the repository allows only one person to change a file at a time. " "First Harry must lock the file before he can begin " "making changes to it. Locking a file is a lot like borrowing a book from the " "library; if Harry has locked a file, then Sally cannot make any changes to " "it. If she tries to lock the file, the repository will deny the request. All " "she can do is read the file, and wait for Harry to finish his changes and " "release his lock. After Harry unlocks the file, his turn is over, and now " "Sally can take her turn by locking and editing." msgstr "" "许多版本控制系统使用锁定-修改-解锁这种机制解决这种问" "题,在这样的模型里,在一个时间段里版本库的一个文件只允许被一个人修改。首先在修" "改之前,Harry 要“锁定”住这个文件,锁定很像是从图书馆借一本书,如果 Harry 锁住" "这个文件,Sally 不能做任何修改,如果 Sally 想请求得到一个锁,版本库会拒绝这个" "请求。在 Harry 结束编辑并且放开这个锁之前,她只可以阅读文件。Harry 解锁后,就" "要换班了,Sally 得到自己的轮换位置,锁定并且开始编辑这个文件。" #. (para) msgid "" "The problem with the lock-modify-unlock model is that it's a bit restrictive, " "and often becomes a roadblock for users:" msgstr "锁定-修改-解锁模型有一点问题就是限制太多,经常会成为用户的障碍: " #. (para) msgid "" "Locking may cause administrative problems. Sometimes " "Harry will lock a file and then forget about it. Meanwhile, because Sally is " "still waiting to edit the file, her hands are tied. And then Harry goes on " "vacation. Now Sally has to get an administrator to release Harry's lock. The " "situation ends up causing a lot of unnecessary delay and wasted time." msgstr "" "锁定可能导致管理问题。有时候 Harry 会锁住文件然后忘了此" "事,这就是说 Sally 一直等待解锁来编辑这些文件,她在这里僵住了。然后 Harry 去旅" "行了,现在 Sally 只好去找管理员放开锁,这种情况会导致不必要的耽搁和时间浪费。" #. (para) msgid "" "Locking may cause unnecessary serialization. What if " "Harry is editing the beginning of a text file, and Sally simply wants to edit " "the end of the same file? These changes don't overlap at all. They could " "easily edit the file simultaneously, and no great harm would come, assuming " "the changes were properly merged together. There's no need for them to take " "turns in this situation." msgstr "" "锁定可能导致不必要的线性化开发。如果 Harry 编辑一个文件的" "开始,Sally 想编辑同一个文件的结尾,这种修改不会冲突,设想修改可以正确的合并到" "一起,他们可以轻松的并行工作而没有太多的坏处,没有必要让他们轮流工作。" #. (para) msgid "" "Locking may create a false sense of security. Pretend " "that Harry locks and edits file A, while Sally simultaneously locks and edits " "file B. But suppose that A and B depend on one another, and the changes made " "to each are semantically incompatible. Suddenly A and B don't work together " "anymore. The locking system was powerless to prevent the problem - yet it " "somehow provided a sense of false security. It's easy for Harry and Sally to " "imagine that by locking files, each is beginning a safe, insulated task, and " "thus inhibits them from discussing their incompatible changes early on." msgstr "" "锁定可能导致错误的安全状态。假设 Harry 锁定和编辑一个文" "件 A,同时 Sally 锁定并编辑文件 B,如果 A 和 B 互相依赖,这种变化是必须同时作" "的,这样 A 和 B 不能正确的工作了,锁定机制对防止此类问题将无能为力—从而产生了" "一种处于安全状态的假相。很容易想象 Harry 和 Sally 都以为自己锁住了文件,而且从" "一个安全,孤立的情况开始工作,因而没有尽早发现他们不匹配的修改。" #. (title) #. (title) msgid "The Copy-Modify-Merge Solution" msgstr "复制-修改-合并 方案" #. (para) msgid "" "Subversion, CVS, and other version control systems use a copy-" "modify-merge model as an alternative to locking. In this model, " "each user's client reads the repository and creates a personal " "working copy of the file or project. Users then work " "in parallel, modifying their private copies. Finally, the private copies are " "merged together into a new, final version. The version control system often " "assists with the merging, but ultimately a human being is responsible for " "making it happen correctly." msgstr "" "Subversion,CVS 和一些版本控制系统使用复制-修改-合并模" "型,在这种模型里,每一个客户读取项目版本库建立一个私有工作副本—版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副" "本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操" "作,但是最终要靠人工去确定正误。" #. (para) #, fuzzy msgid "" "Here's an example. Say that Harry and Sally each create working copies of the " "same project, copied from the repository. They work concurrently, and make " "changes to the same file A within their copies. Sally " "saves her changes to the repository first. When Harry attempts to save his " "changes later, the repository informs him that his file A is out-" "of-date. In other words, that file A in the repository has " "somehow changed since he last copied it. So Harry asks his client to " "merge any new changes from the repository into his " "working copy of file A. Chances are that Sally's changes don't overlap with " "his own; so once he has both sets of changes integrated, he saves his working " "copy back to the repository." msgstr "" "这是一个例子,Harry 和 Sally 为同一个项目各自建立了一个工作副本,工作是并行" "的,修改了同一个文件 A,Sally 首先保存修改到版本库,当 Harry 想去提交修改的时" "候,版本库提示文件 A 已经过期,换句话说,A 在他上次更新" "之后已经更改了,所以当他通过客户端请求合并版本库和他的" "工作副本之后,碰巧 Sally 的修改和他的不冲突,所以一旦他把所有的修改集成到一" "起,他可以将工作副本保存到版本库。" #. (title) msgid "...Copy-Modify-Merge Continued" msgstr "复制-修改-合并 方案(续)" #. (primary) #. (primary) msgid "conflict" msgstr "冲突" #. (para) msgid "" "But what if Sally's changes do overlap with Harry's " "changes? What then? This situation is called a conflict, and it's usually not much of a problem. When Harry asks his " "client to merge the latest repository changes into his working copy, his copy " "of file A is somehow flagged as being in a state of conflict: he'll be able " "to see both sets of conflicting changes, and manually choose between them. " "Note that software can't automatically resolve conflicts; only humans are " "capable of understanding and making the necessary intelligent choices. Once " "Harry has manually resolved the overlapping changes (perhaps by discussing " "the conflict with Sally!), he can safely save the merged file back to the " "repository." msgstr "" "但是如果 Sally 和 Harry 的修改重叠了该怎么办?这种情况叫" "做冲突,这通常不是个大问题,当 Harry 告诉他的客户端去合" "并版本库的最新修改到自己的工作副本时,他的文件 A 就会处于冲突状态: 他可以看到" "一对冲突的修改集,并手工的选择保留一组修改。需要注意的是软件不能自动的解决冲" "突,只有人可以理解并作出智能的选择,一旦 Harry 手工的解决了冲突(也许需要与 " "Sally 讨论),他就可以安全的把合并的文件保存到版本库。" #. (para) msgid "" "The copy-modify-merge model may sound a bit chaotic, but in practice, it runs " "extremely smoothly. Users can work in parallel, never waiting for one " "another. When they work on the same files, it turns out that most of their " "concurrent changes don't overlap at all; conflicts are infrequent. And the " "amount of time it takes to resolve conflicts is far less than the time lost " "by a locking system." msgstr "" "复制-修改-合并模型感觉是有一点混乱,但在实践中,通常运行的很平稳,用户可以并行" "的工作,不必等待别人,当工作在同一个文件上时,也很少会有重叠发生,冲突并不频" "繁,处理冲突的时间远比等待解锁花费的时间少。" #. (para) msgid "" "In the end, it all comes down to one critical factor: user communication. " "When users communicate poorly, both syntactic and semantic conflicts " "increase. No system can force users to communicate perfectly, and no system " "can detect semantic conflicts. So there's no point in being lulled into a " "false promise that a locking system will somehow prevent conflicts; in " "practice, locking seems to inhibit productivity more than anything else." msgstr "" "最后,一切都要归结到一条重要的因素: 用户交流。当用户交流贫乏,语法和语义的冲突" "就会增加,没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突,所以没" "有任何证据能够承诺锁定系统可以防止冲突,实践中,锁定除了约束了生产力,并没有做" "什么事。" #. (para) msgid "" "There is one common situation where the lock-modify-unlock model comes out " "better, and that is where you have unmergeable files. For example if your " "repository contains some graphic images, and two people change the image at " "the same time, there is no way for those changes to be merged together. " "Either Harry or Sally will lose their changes." msgstr "" "有一种情况下锁定-修改-解锁模型会更好,也就是你有不可合并的文件,例如你的版本库" "包含了图片,两个人同时编辑这个文件,没有办法将这两个修改合并,Harry 或 Sally " "会丢失他们的修改。" #. (title) msgid "What does Subversion Do?" msgstr "Subversion 怎么做?" #. (para) msgid "" "Subversion uses the copy-modify-merge solution by default, and in many cases " "this is all you will ever need. However, as of Version 1.2, Subversion also " "supports file locking, so if you have unmergeable files, or if you are simply " "forced into a locking policy by management, Subversion will still provide the " "features you need." msgstr "" "Subversion 缺省使用复制-修改-合并模型,大多数情况下可以满足你的需求。然而," "Subversion 1.2 后还是支持锁定,如果你有不可合并的文件,或者你只是想实行强制管" "理策略,Subversion 仍然会提供你需要的特性。" #. (title) msgid "Subversion in Action" msgstr "Subversion 实战" #. (title) msgid "Working Copies" msgstr "工作副本" #. (primary) msgid "working copy" msgstr "工作副本" #. (para) msgid "" "You've already read about working copies; now we'll demonstrate how the " "Subversion client creates and uses them." msgstr "" "你已经阅读过了关于工作副本的内容,现在我们要讲一讲客户端怎样建立和使用它。" #. (para) msgid "" "A Subversion working copy is an ordinary directory tree on your local system, " "containing a collection of files. You can edit these files however you wish, " "and if they're source code files, you can compile your program from them in " "the usual way. Your working copy is your own private work area: Subversion " "will never incorporate other people's changes, nor make your own changes " "available to others, until you explicitly tell it to do so." msgstr "" "一个 Subversion 工作副本是你本地机器一个普通的目录,保存着一些文件,你可以任意" "的编辑文件,而且如果是源代码文件,你可以像平常一样编译,你的工作副本是你的私有" "工作区,在你明确的做了特定操作之前,Subversion 不会把你的修改与其他人的合并," "也不会把你的修改展示给别人。" #. (para) #, fuzzy msgid "" "After you've made some changes to the files in your working copy and verified " "that they work properly, Subversion provides you with commands to " "publish your changes to the other people working with " "you on your project (by writing to the repository). If other people publish " "their own changes, Subversion provides you with commands to merge those " "changes into your working directory (by reading from the repository)." msgstr "" "当你在工作副本作了一些修改并且确认它们工作正常之后,Subversion 提供了一个命令" "可以“发布”你的修改给项目中的其他人(通过写到版本库),如果别人发布了各自的修改," "Subversion 提供了手段可以把这些修改与你的工作目录进行合并(通过读取版本库)。" #. (para) msgid "" "A working copy also contains some extra files, created and maintained by " "Subversion, to help it carry out these commands. In particular, each " "directory in your working copy contains a subdirectory named .svn, also known as the working copy administrative " "directory. The files in each administrative directory help " "Subversion recognize which files contain unpublished changes, and which files " "are out-of-date with respect to others' work." msgstr "" "一个工作副本也包括一些由 Subversion 创建并维护的额外文件,用来协助执行这些命" "令。通常情况下,你的工作副本每一个文件夹有一个以 .svn 为" "名的文件夹,也被叫做工作副本管理目录,这个目录里的文件" "能够帮助 Subversion 识别哪一个文件做过修改,哪一个文件相对于别人的工作已经过期" "了。" #. (para) msgid "" "A typical Subversion repository often holds the files (or source code) for " "several projects; usually, each project is a subdirectory in the repository's " "filesystem tree. In this arrangement, a user's working copy will usually " "correspond to a particular subtree of the repository." msgstr "" "一个典型的 Subversion 的版本库经常包含许多项目的文件(或者说源代码),通常每一个" "项目都是版本库的子目录,在这种安排下,一个用户的工作副本往往对应版本库的的一个" "子目录。" #. (para) msgid "" "For example, suppose you have a repository that contains two software " "projects." msgstr "举一个例子,你的版本库包含两个软件项目。" #. (title) msgid "The Repository's Filesystem" msgstr "版本库的文件系统" #. (para) msgid "" "In other words, the repository's root directory has two subdirectories: " "paint and calc." msgstr "" "换句话说,版本库的根目录包含两个子目录: paint 和 " "calc。" #. (para) #, fuzzy msgid "" "To get a working copy, you must check out some subtree " "of the repository. (The term check out may sound like it " "has something to do with locking or reserving resources, but it doesn't; it " "simply creates a private copy of the project for you)." msgstr "" "为了得到一个工作副本,你必须检出版本库的一个子树,(术" "语“检出”听起来像是锁定或者保留资源,实际上不是,它只是简单的得到一个项目的私有" "副本)。" #. (para) msgid "" "Suppose you make changes to button.c. Since the " ".svn directory remembers the file's modification date " "and original contents, Subversion can tell that you've changed the file. " "However, Subversion does not make your changes public until you explicitly " "tell it to. The act of publishing your changes is more commonly known as " "committing (or checking in) " "changes to the repository." msgstr "" "假定你修改了 button.c,因为 .svn 目" "录记录着文件的修改日期和原始内容,Subversion 可以告诉你已经修改了文件,然而," "在你明确告诉它之前,Subversion 不会将你的改变公开。将改变公开的操作被叫做提交" "(或者是检入),它提交修改到版本库中。" #. (para) msgid "" "To publish your changes to others, you can use Subversion's commit command." msgstr "发布你的修改给别人,可以使用 Subversion 的提交命令。" #. (para) msgid "" "Now your changes to button.c have been committed to the " "repository; if another user checks out a working copy of /calc, they will see your changes in the latest version of the file." msgstr "" "这时你对 button.c 的修改已经提交到了版本库,如果其他人取" "出了 /calc 的一个工作副本,他们会看到这个文件最新的版本。" #. (para) msgid "" "Suppose you have a collaborator, Sally, who checked out a working copy of " "/calc at the same time you did. When you commit your " "change to button.c, Sally's working copy is left " "unchanged; Subversion only modifies working copies at the user's request." msgstr "" "设你有个合作者,Sally,她和你同时取出了 /calc 的一个工作" "副本,你提交了你对 button.c 的修改,Sally 的工作副本并没" "有改变,Subversion 只在用户要求的时候才改变工作副本。" #. (para) msgid "" "To bring her project up to date, Sally can ask Subversion to " "update her working copy, by using the Subversion " "update command. This will incorporate your changes into " "her working copy, as well as any others that have been committed since she " "checked it out." msgstr "" "要使项目最新,Sally 可以要求 Subversion 更新她的工作副" "本,通过使用更新命令,可以将你和所有其他人在她上次更新之后的修改合并到她的工作" "副本。" #. (para) msgid "" "Note that Sally didn't need to specify which files to update; Subversion uses " "the information in the .svn directory, and further " "information in the repository, to decide which files need to be brought up to " "date." msgstr "" "注意,Sally 不必指定要更新的文件,Subversion 利用 .svn 以" "及版本库的进一步信息决定哪些文件需要更新。" #. (title) msgid "Repository URLs" msgstr "版本库的 URL" #. (para) msgid "" "Subversion repositories can be accessed through many different methods - on " "local disk, or through various network protocols. A repository location, " "however, is always a URL. The URL schema indicates the access method:" msgstr "" "Subversion 可以通过多种方式访问-本地磁盘访问,或各种各样不同的网络协议,但一" "个版本库地址永远都是一个 URL,URL 方案反映了访问方法。" #. (title) msgid "Repository Access URLs" msgstr "版本库访问 URL" #. (entry) msgid "Schema" msgstr "方案" #. (entry) msgid "Access Method" msgstr "访问方法" #. (literal) msgid "file://" msgstr "file://" #. (entry) msgid "Direct repository access on local or network drive." msgstr "直接版本库访问(本地磁盘或者网络磁盘)。" #. (literal) #. (literal) msgid "http://" msgstr "http://" #. (entry) msgid "Access via WebDAV protocol to Subversion-aware Apache server." msgstr "通过 WebDAV 协议访问支持 Subversion 的 Apache 服务器。" #. (literal) msgid "https://" msgstr "https://" #. (entry) msgid "Same as , but with SSL encryption." msgstr "与 相似,但是用 SSL 加密。" #. (literal) msgid "svn://" msgstr "svn://" #. (literal) #. (literal) #. (primary) #. (primary) msgid "svnserve" msgstr "svnserve" #. (entry) msgid "" "Unauthenticated TCP/IP access via custom protocol to a " "server." msgstr "通过未认证的 TCP/IP 自定义协议访问 服务器。" #. (literal) msgid "svn+ssh://" msgstr "svn+ssh://" #. (entry) msgid "" "authenticated, encrypted TCP/IP access via custom protocol to a server." msgstr "通过认证并加密的 TCP/IP 自定义协议访问 服务器。" #. (para) #, fuzzy msgid "" "For the most part, Subversion's URLs use the standard syntax, allowing for " "server names and port numbers to be specified as part of the URL. The " "file:// access method is normally used for local access, " "although it can be used with UNC paths to a networked host. The URL therefore " "takes the form file://hostname/path/to/repos. For the local machine, the hostname portion " "of the URL is required to be either absent or localhost. " "For this reason, local paths normally appear with three slashes, file:///path/to/repos." msgstr "" "大多数情况下,Subversion 的 URL 使用标准语法,允许服务器名称和端口号作为 URL " "的一部分。file:访问方法通常用来本地访问,尽管也可以使用 " "UNC 路径访问网络主机,采用的 URL 形式为 file://hostname/path/to/" "repos。对于本地主机,主机部分可以为空或者是localhost,因此,本地路径通常出现三个斜线-file:///path/to/repos。" #. (para) #, fuzzy msgid "" "Also, users of the file:// scheme on Windows platforms " "will need to use an unofficially standard syntax for accessing " "repositories that are on the same machine, but on a different drive than the " "client's current working drive. Either of the two following URL path syntaxes " "will work where X is the drive on which the repository " "resides:" msgstr "" "另外,在 Windows 平台的 file: 方案有时候需要使用一种非正式" "的标准协议访问本地但不是程序运行磁盘的版本库,以下两种 URL 路径" "语法都可以工作,其中的 X 是版本库所在的磁盘: " #. (screen) #, no-wrap msgid "" "\n" "file:///X:/path/to/repos\n" "...\n" "file:///X|/path/to/repos\n" "...\n" msgstr "" "\n" "file:///X:/path/to/repos\n" "...\n" "file:///X|/path/to/repos\n" "...\n" #. (para) msgid "" "Note that a URL uses ordinary slashes even though the native (non-URL) form " "of a path on Windows uses backslashes." msgstr "注意 URL 使用普通的斜杠,而不是 Windows 本地(非 URL)形式的路径。" #. (para) msgid "" "You can safely access a FSFS repository via a network share, but you " "cannot access a BDB repository in this way." msgstr "" "你可以安全的访问网络共享的 FSFS 版本库,但是你不能以这种" "方式访问 BDB 版本库。" #. (para) #. (para) msgid "" "Do not create or access a Berkeley DB repository on a network share. It " "cannot exist on a remote filesystem. Not even if you " "have the network drive mapped to a drive letter. If you attempt to use " "Berkeley DB on a network share, the results are unpredictable - you may see " "mysterious errors right away, or it may be months before you discover that " "your repository database is subtly corrupted." msgstr "" "不要创建和访问网络共享上的 Berkeley DB 版本库,它不能存在" "于一个远程的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用 " "Berkeley DB,结果难以预料-你可能会立刻看到奇怪的错误,也有可能几个月之后才发" "现数据库已经损坏了。" #. (title) msgid "Revisions" msgstr "修订版本" #. (primary) #. (primary) msgid "revision" msgstr "修订版本" #. (para) msgid "" "A svn commit operation can publish changes to any number " "of files and directories as a single atomic transaction. In your working " "copy, you can change files' contents, create, delete, rename and copy files " "and directories, and then commit the complete set of changes as a unit." msgstr "" "svn commit 操作可以作为一个原子事务操作发布任意数量文件和目" "录的修改。在你的工作副本中,你可以改变文件内容,创建、删除、改名和复制文件和目" "录,然后作为一个整体提交。" #. (para) msgid "" "In the repository, each commit is treated as an atomic transaction: either " "all the commits changes take place, or none of them take place. Subversion " "retains this atomicity in the face of program crashes, system crashes, " "network problems, and other users' actions." msgstr "" "在版本库中,每次提交被当作一次原子事务操作: 要么所有的改变发生,要么都不发生," "Subversion 努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。" #. (para) msgid "" "Each time the repository accepts a commit, this creates a new state of the " "filesystem tree, called a revision. Each revision is " "assigned a unique natural number, one greater than the number of the previous " "revision. The initial revision of a freshly created repository is numbered " "zero, and consists of nothing but an empty root directory." msgstr "" "每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做版本,每个版本被赋予" "一个独一无二的自然数,一个比一个大,初始修订号是 0,只创建了一个空目录,没有任" "何内容。" #. (para) msgid "" "A nice way to visualize the repository is as a series of trees. Imagine an " "array of revision numbers, starting at 0, stretching from left to right. Each " "revision number has a filesystem tree hanging below it, and each tree is a " "snapshot of the way the repository looked after each commit." msgstr "" "可以形象的把版本库看作一系列树,想象有一组版本号,从 0 开始,从左到右,每一个" "修订号有一个目录树挂在它下面,每一个树好像是一次提交后的版本库“快照”。" #. (title) msgid "Global Revision Numbers" msgstr "全局版本号" #. (para) msgid "" "Unlike those of many other version control systems, Subversion's revision " "numbers apply to entire trees, not individual files. " "Each revision number selects an entire tree, a particular state of the " "repository after some committed change. Another way to think about it is that " "revision N represents the state of the repository filesystem after the Nth " "commit. When a Subversion user talks about ``revision 5 of foo.c'', they really mean ``foo.c as it appears in " "revision 5.'' Notice that in general, revisions N and M of a file do " "not necessarily differ!" msgstr "" "不像其它版本控制系统,Subversion 的版本号是针对整个目录树" "的,而不是单个文件。每一个版本号代表了一次提交后版本库整个目录树的特定状态,另" "一种理解是版本 N 代表版本库已经经过了 N 次提交。当 Subversion 用户讨" "论“foo.c的版本 5”时,他们的实际意思是“在版本 5 时的" "foo.c”。需要注意的是,一个文件的版本 N 和 M 并" "不表示它必定不同。" #. (para) msgid "" "It's important to note that working copies do not always correspond to any " "single revision in the repository; they may contain files from several " "different revisions. For example, suppose you check out a working copy from a " "repository whose most recent revision is 4:" msgstr "" "需要特别注意的是,工作副本并不一定对应版本库中的单一版本,他们可能包含多个版本" "的文件。举个例子,你从版本库检出一个工作副本,最新的版本是 4: " #. (screen) #, no-wrap msgid "" "\n" "calc/Makefile:4\n" " integer.c:4\n" " button.c:4\n" msgstr "" "\n" "calc/Makefile:4\n" " integer.c:4\n" " button.c:4\n" #. (para) msgid "" "At the moment, this working directory corresponds exactly to revision 4 in " "the repository. However, suppose you make a change to button.c, and commit that change. Assuming no other commits have taken " "place, your commit will create revision 5 of the repository, and your working " "copy will now look like this:" msgstr "" "此刻,工作目录与版本库的版本 4 完全对应,然而,你修改了 button.c 并且提交之后,假设没有别的提交出现,你的提交会在版本库建立版本 5,你" "的工作副本会是这个样子的: " #. (screen) #, no-wrap msgid "" "\n" "calc/Makefile:4\n" " integer.c:4\n" " button.c:5\n" msgstr "" "\n" "calc/Makefile:4\n" " integer.c:4\n" " button.c:5\n" #. (para) msgid "" "Suppose that, at this point, Sally commits a change to integer.c, creating revision 6. If you use svn update to " "bring your working copy up to date, then it will look like this:" msgstr "" "假设此刻,Sally 提交了对 integer.c 的修改,建立修订版本 " "6,如果你使用 svn update 来更新你的工作副本,你会看到: " #. (screen) #, no-wrap msgid "" "\n" "calc/Makefile:6\n" " integer.c:6\n" " button.c:6\n" msgstr "" "\n" "calc/Makefile:6\n" " integer.c:6\n" " button.c:6\n" #. (para) msgid "" "Sally's changes to integer.c will appear in your working " "copy, and your change will still be present in button.c. " "In this example, the text of Makefile is identical in " "revisions 4, 5, and 6, but Subversion will mark your working copy of " "Makefile with revision 6 to indicate that it is still " "current. So, after you do a clean update at the top of your working copy, it " "will generally correspond to exactly one revision in the repository." msgstr "" "Sally 对 integer.c 的改变会出现在你的工作副本,你对 " "button.c 的改变还在,在这个例子里,Makefile 在 4、5、6 版本都是一样的,但是 Subversion 会把 " "Makefile 的版本设为 6 来表明它是最新的,所以你在工作副本" "顶级目录作一次干净的更新,会使所有内容对应版本库的同一修订版本。" #. (title) msgid "How Working Copies Track the Repository" msgstr "工作副本怎样跟踪版本库" #. (para) msgid "" "For each file in a working directory, Subversion records two essential pieces " "of information in the .svn/ administrative area:" msgstr "" "对于工作副本的每一个文件,Subversion 在管理目录 .svn/ 记" "录两项关键的信息: " #. (para) msgid "" "what revision your working file is based on (this is called the file's " "working revision), and" msgstr "工作文件的基准版本(叫做文件的工作版本)和" #. (para) msgid "" "a timestamp recording when the local copy was last updated by the repository." msgstr "一个本地副本最后更新的时间戳。" #. (para) msgid "" "Given this information, by talking to the repository, Subversion can tell " "which of the following four states a working file is in:" msgstr "" "给定这些信息,通过与版本库通讯,Subversion 可以告诉我们工作文件是处与如下四种" "状态的那一种: " #. (term) msgid "Unchanged, and current" msgstr "未修改且是当前的" #. (para) msgid "" "The file is unchanged in the working directory, and no changes to that file " "have been committed to the repository since its working revision. A " "commit of the file will do nothing, and an " "update of the file will do nothing." msgstr "" "文件在工作目录里没有修改,在工作版本之后没有修改提交到版本库。svn " "commit 操作不做任何事情,svn update 不做任何事" "情。" #. (term) msgid "Locally changed, and current" msgstr "本地已修改且是当前的" #. (para) msgid "" "The file has been changed in the working directory, and no changes to that " "file have been committed to the repository since its base revision. There are " "local changes that have not been committed to the repository, thus a " "commit of the file will succeed in publishing your " "changes, and an update of the file will do nothing." msgstr "" "工作副本已经修改,从基准版本之后没有修改提交到版本库。本地修改没有提交,因此 " "commit 会成功的提交,update 不做任何事" "情。" #. (term) msgid "Unchanged, and out-of-date" msgstr "本地未修改且过时" #. (para) msgid "" "The file has not been changed in the working directory, but it has been " "changed in the repository. The file should eventually be updated, to make it " "current with the public revision. A commit of the file " "will do nothing, and an update of the file will fold the " "latest changes into your working copy." msgstr "" "这个文件在工作副本没有修改,但在版本库中已经修改了。这个文件应当更新到最新公共" "版本。commit 不做任何事情,update 将会更" "新工作副本到最新的版本。" #. (term) msgid "Locally changed, and out-of-date" msgstr "本地已修改且过时" #. (para) #, fuzzy msgid "" "The file has been changed both in the working directory, and in the " "repository. A commit of the file will fail with an " "out-of-date error. The file should be updated first; an " "update command will attempt to merge the public changes " "with the local changes. If Subversion can't complete the merge in a plausible " "way automatically, it leaves it to the user to resolve the conflict." msgstr "" "这个文件在工作副本和版本库都被修改。commit 将会失败,这个文" "件必须首先更新,update 命令会尝试合并公共和本地修改,如果 " "Subversion 不能自动完成,将会让用户解决冲突。" #. (title) msgid "Summary" msgstr "摘要" #. (para) msgid "" "We've covered a number of fundamental Subversion concepts in this chapter:" msgstr "我们在这一章里学习了许多 Subversion 基本概念: " #. (para) msgid "" "We've introduced the notions of the central repository, the client working " "copy, and the array of repository revision trees." msgstr "我们介绍了中央版本库、客户工作副本和版本库中版本树队列的概念。" #. (para) msgid "" "We've seen some simple examples of how two collaborators can use Subversion " "to publish and receive changes from one another, using the 'copy-modify-" "merge' model." msgstr "" "我们介绍了两个协作者如何使用使用复制-修改-合并模型,用 " "Subversion 发布和获得对方的修改。" #. (para) msgid "" "We've talked a bit about the way Subversion tracks and manages information in " "a working copy." msgstr "我们讨论了一些 Subversion 跟踪和管理工作副本信息的方式。" #. (para) msgid "" "No matter which protocol you use to access your repositories, you always need " "to create at least one repository. This can either be done with the " "Subversion command line client or with TortoiseSVN." msgstr "" "无论你用什么协议访问你的版本库,都至少需要创建一个版本库,这可以使用Subversion" "命令行客户端或TortoiseSVN完成。" #. (para) msgid "" "If you haven't created a Subversion repository yet, it's time to do that now." msgstr "如果你还没有创建Subversion版本库,是时间开始了。" #. (title) msgid "Repository Creation" msgstr "创建版本库" #. (primary) msgid "create repository" msgstr "创建版本库" #. (para) #, fuzzy msgid "" "You can create a repository with the FSFS backend or with the older Berkeley " "Database (BDB) format. The FSFS format is generally faster and easier to " "administer, and it works on network shares and Windows 98 without problems. " "The BDB format was once considered more stable simply because it has been in " "use for longer, but since FSFS has now been in use in the field for several " "years, that argument is now rather weak. Read Choosing a Data Store in the Subversion " "book for more information." msgstr "" "你可以使用 FSFS 或较老的 Berkeley 数据库(BDB)作为版本库的后端,FSFS 格式通常更" "快一点,还容易管理,而且可以正常运行在网络共享磁盘上 或 Windows 98 中。BDB 格" "式曾经简单的被认为更加稳定,因为其经过了更长时间的验证,但是既然 FSFS 已经使用" "了几年,这个论据已经相当不牢固了。参考 Subversion 手册的 选择数据存储 以获得更多信息。" #. (title) msgid "Creating a Repository with the Command Line Client" msgstr "使用命令行工具创建版本库" #. (primary) #. (primary) msgid "Create" msgstr "创建" #. (secondary) msgid "Command Line Client" msgstr "命令行工具" #. (para) msgid "" "Create an empty folder with the name SVN (e.g. D:\\SVN\\), which is used as root for all your repositories." msgstr "" "创建一个名为SVN(例如D:\\SVN\\)的空文件夹,作为你的所有版" "本库的根。" #. (para) msgid "" "Create another folder MyNewRepository inside D:" "\\SVN\\." msgstr "" "在D:\\SVN\\里创建另一个目录MyNewRepository。" #. (para) msgid "" "Open the command prompt (or DOS-Box), change into D:\\SVN\\ and type \n" "svnadmin create --fs-type bdb MyNewRepository\n" " or \n" "svnadmin create --fs-type fsfs MyNewRepository\n" "" msgstr "" "打开命令行窗口(或DOS窗口),进入D:\\SVN\\目录,输入" "\n" "svnadmin create --fs-type bdb MyNewRepository\n" "\n" "svnadmin create --fs-type fsfs MyNewRepository\n" "" #. (para) msgid "" "Now you've got a new repository located at D:\\SVN" "\\MyNewRepository." msgstr "" "现在你在D:\\SVN\\MyNewRepository创建了一个新的版本库。" #. (title) msgid "Creating The Repository With TortoiseSVN" msgstr "使用 TortoiseSVN 创建版本库" #. (title) msgid "The TortoiseSVN menu for unversioned folders" msgstr "未版本控制文件夹的 TortoiseSVN 菜单" #. (para) msgid "Open the windows explorer" msgstr "打开资源管理器" #. (para) msgid "Create a new folder and name it e.g. SVNRepository" msgstr "创建一个新的文件夹,命名为SVNRepository" #. (para) msgid "" "Right-click on the newly created folder and select " "TortoiseSVNCreate Repository " "here...." msgstr "" "右键点击新创建的目录,选择TortoiseSVN在此创建版本库...。" #. (para) msgid "" "A repository is then created inside the new folder. Don't edit " "those files yourself!!!. If you get any errors make sure that the " "folder is empty and not write protected." msgstr "" "然后就会在新文件夹创建一个版本库,不要手工编辑这些文件!!!如果你得到什么警告,一定要先确定目录非空并且没有写保护。" #. (para) msgid "" "TortoiseSVN no longer offers the option to create BDB repositories, although " "you can still use the command line client to create them. FSFS repositories " "are generally easier for you to maintain, and also makes it easier for us to " "maintain TortoiseSVN due to compatibility issues between the different BDB " "versions." msgstr "" "TortoiseSVN 不再给你创建 BDB 版本库的选择,尽管你仍旧可以使用命令行工具创建。" "FSFS 版本库通常很容易维护,也让我们维护 TortoiseSVN 变得更容易,因为我们不再需" "要处理不同 BDB 版本之间的兼容性问题。" #. (para) #, fuzzy msgid "" "Future versions of TortoiseSVN will not support file:// " "access to BDB repositories due to these compatibility issues, although it " "will of course always support this repository format when accessed via a " "server through the svn://, http:// or " "https:// protocols. For this reason, we strongly recommend " "that any new repository which must be accessed using file:// protocol is created as FSFS." msgstr "" "由于这些兼容性问题,将来的 TortoiseSVN 不再支持使用 file:/// 访问 BDB 版本库,尽管我们继续支持使用 svn://," "http://https:// 协议访问 BDB 版本" "库。因此,我们强烈建议任何新的必须使用 file:/// 协议访问的" "版本库使用 FSFS 格式。" #. (para) #, fuzzy msgid "" "Of course we also recommend that you don't use file:// " "access at all, apart from local testing purposes. Using a server is more " "secure and more reliable for all but single-developer use." msgstr "" "当然除了本地测试之外,我们也建议你根本不要使用 file:/// 协" "议访问。除非是单个开发人员,使用服务器模型更为安全可靠。" #. (title) msgid "Local Access to the Repository" msgstr "本地访问版本库" #. (primary) msgid "Access" msgstr "访问" #. (primary) msgid "UNC paths" msgstr "UNC路径" #. (para) msgid "" "To access your local repository you need the path to that folder. Just " "remember that Subversion expects all repository paths in the form file:///C:/SVNRepository/. Note the use of forward " "slashes throughout." msgstr "" "为了访问本地版本库,你需要这个文件夹的路径,只要记住Subversion期望所有的版本库" "路径使用的形式为file:///C:/SVNRepository/,请注意全部使用的是斜杠。" #. (para) msgid "" "To access a repository located on a network share you can either use drive " "mapping, or you can use the UNC path. For UNC paths, the form is file://ServerName/path/to/repos/. Note that there " "are only 2 leading slashes here." msgstr "" "为了访问网络共享中的版本库,你可以使用驱动器影射或使用UNC路径,对于UNC路径,形" "式为file://ServerName/path/to/repos/," "请注意这里前面只有两个斜杠。" #. (para) msgid "" "Prior to SVN 1.2, UNC paths had to be given in the more obscure form " "file:///\\ServerName/path/to/repos. " "This form is still supported, but not recommended." msgstr "" "在SVN 1.2之前,UNC路径曾经是一种非常晦涩的格式file:///\\ServerName/path/to/repos,这种格式依然支持,但不推" "荐。" #. (para) msgid "" "Do not create or access a Berkeley DB repository on a network share. It " "cannot exist on a remote file system. Not even if you " "have the network drive mapped to a drive letter. If you attempt to use " "Berkeley DB on a network share, the results are unpredictable - you may see " "mysterious errors right away, or it may be months before you discover that " "your repository database is subtly corrupted." msgstr "" "不要创建和访问网络共享上的 Berkeley DB 版本库。它不能存在" "于远程文件系统。即使是映射到盘符的共享。如果你尝试在网络共享使用 Berkeley DB," "结果难以预料 - 你可能会立刻看到奇怪的错误,也有可能几个月之后才发现数据库已经" "损坏了。" #. (title) msgid "Accessing a Repository on a Network Share" msgstr "访问网络共享磁盘上的版本库" #. (primary) msgid "Network share" msgstr "网络共享" #. (para) msgid "" "Although in theory it is possible to put a FSFS repository on a network share " "and have multiple users access it using file:// protocol, " "this is most definitely not recommended. In fact we " "would strongly discourage it, and do not support such " "use." msgstr "" "尽管从理论上说,将一个 FSFS 格式的版本库放在网络中共享,并且多用户通过 " "file:// 协议访问是可以的。但这样做是非常妥当的。事实上我们强烈反对这样做,并且不支持这样" "的用法。" #. (para) msgid "" "Firstly you are giving every user direct write access to the repository, so " "any user could accidentally delete the entire repository or make it unusable " "in some other way." msgstr "" "首先,这样赋予所有用户对版本库的写权限,所以任何一个用户都可能意外的删除整个版" "本库,或者因为别的问题导致版本库不可用。" #. (para) msgid "" "Secondly not all network file sharing protocols support the locking that " "Subversion requires, so you may find your repository gets corrupted. It may " "not happen straight away, but one day two users will try to access the " "repository at the same time." msgstr "" "其次,不是所有的网络文件共享协议都支持 Subversion 需要的文件锁定,所以你会发现" "你的版本库被毁了。它也许不会马上发生,但是总有一天会有 2 个用户同时访问版本" "库。" #. (para) msgid "" "Thirdly the file permissions have to be set just so. You may just about get " "away with it on a native Windows share, but SAMBA is particularly difficult." msgstr "" "第三,文件的权限必需设置得井井有条。也许 Windows 的共享可以避开这个问题,但是" "在 SAMBA 中却是相当困难的。" #. (para) msgid "" "file:// access is intended for local, single-user access " "only, particularly testing and debugging. When you want to share the " "repository you really need to set up a proper server, " "and it is not nearly as difficult as you might think. Read for guidelines on choosing and setting up a server." msgstr "" "file:// 访问是为本机工作而准备的,只能单用户访问,特别是测" "试和调试。当你打算共享版本库的时候,你真的需要设置一个适" "当的服务器,而且它并不像你想象的那样困难。阅读获得选择指南,并配置服务器。" #. (title) msgid "Repository Layout" msgstr "版本库布局" #. (para) msgid "" "Before you import your data into the repository you should first think about " "how you want to organize your data. If you use one of the recommended layouts " "you will later have it much easier." msgstr "" "在将你的数据导入到版本库之前,首先你得考虑如何组织你的数据。如果你使用一种推荐" "的布局,你在后面的操作将会更容易许多。" #. (para) #, fuzzy msgid "" "There are some standard, recommended ways to organize a repository. Most " "people create a trunk directory to hold the main " "line of development, a branches directory to " "contain branch copies, and a tags directory to contain " "tag copies. If a repository holds only one project, then often people create " "these top-level directories:" msgstr "" "有一些标准的、推荐的方式来组织一个版本库。大多数人建一个trunk目录来存放开发的“主线”、一个branches目录来容纳分" "支副本、以及一个tags目录来容纳标签复制。如果一个版本库只" "存放一个项目,人们通常创建三个这样的顶层目录: " #. (screen) #, no-wrap msgid "" "\n" "/trunk\n" "/branches\n" "/tags\n" msgstr "" "\n" "/trunk\n" "/branches\n" "/tags\n" #. (para) msgid "" "If a repository contains multiple projects, people often index their layout " "by branch:" msgstr "如果一个版本库包含多个项目,人们通常按分支来安排布局: " #. (screen) #, no-wrap msgid "" "\n" "/trunk/paint\n" "/trunk/calc\n" "/branches/paint\n" "/branches/calc\n" "/tags/paint\n" "/tags/calc\n" msgstr "" "\n" "/trunk/paint\n" "/trunk/calc\n" "/branches/paint\n" "/branches/calc\n" "/tags/paint\n" "/tags/calc\n" #. (para) msgid "...or by project:" msgstr "……或者按项目: " #. (screen) #, no-wrap msgid "" "\n" "/paint/trunk\n" "/paint/branches\n" "/paint/tags\n" "/calc/trunk\n" "/calc/branches\n" "/calc/tags\n" msgstr "" "\n" "/paint/trunk\n" "/paint/branches\n" "/paint/tags\n" "/calc/trunk\n" "/calc/branches\n" "/calc/tags\n" #. (para) msgid "" "Indexing by project makes sense if the projects are not closely related and " "each one is checked out individually. For related projects where you may want " "to check out all projects in one go, or where the projects are all tied " "together in a single distribution package, it is often better to index by " "branch. This way you have only one trunk to checkout, and the relationships " "between the sub-projects is more easily visible." msgstr "" "如果项目不是密切相关,而且每一个是单独被检出,那么按项目布局是合理的。对于那些" "你想一次检出所有项目,或需要将它们打成一个分发包的相关项目,按分支来布局通常比" "较好。这种方式你只要检出一个分支,而且子项目之间的关系也比较清楚。" #. (para) msgid "" "If you adopt a top level /trunk /tags /branches " "approach, there is nothing to say that you have to copy the entire trunk for " "every branch and tag, and in some ways this structure offers the most " "flexibility." msgstr "" "如果你采用顶层/trunk /tags /branches这种方式,并不意味着" "你必须复制整个主线为分支或标签,而且某些情况下这种结构更具灵活性。" #. (para) msgid "" "For unrelated projects you may prefer to use separate repositories. When you " "commit changes, it is the revision number of the whole repository which " "changes, not the revision number of the project. Having 2 unrelated projects " "share a repository can mean large gaps in the revision numbers. The " "Subversion and TortoiseSVN projects appear at the same host address, but are " "completely separate repositories allowing independent development, and no " "confusion over build numbers." msgstr "" "对于不相关的项目,你可能更愿意使用不同的版本库。当你提交时,改变的是整个版本库" "的修订号,而不是项目的。让两个不相关的项目共用一个版本库,会导致修订号出现较大" "的跳跃。Subversion和TortoiseSVN项目看起来是在同一个主机地址,但是它们是在完全" "独立的版本库中开发着,并且版本号也不相干。" #. (para) msgid "" "Of course, you're free to ignore these common layouts. You can create any " "sort of variation, whatever works best for you or your team. Remember that " "whatever you choose, it's not a permanent commitment. You can reorganize your " "repository at any time. Because branches and tags are ordinary directories, " "TortoiseSVN can move or rename them however you wish." msgstr "" "当然,你完全可以不理会上面提及的通用布局。你可以自由改变,来满足你和你团队的需" "要。请记住,不管你选择哪种布局,它都不是永久的。你可以在随时重新组织你的版本" "库。因为分支和标签是普通的目录,只要你愿意,TortoiseSVN可以将它们移动或重命" "名。" #. (para) msgid "" "Switching from one layout to another is just a matter of issuing a series of " "server-side moves; If you don't like the way things are organized in the " "repository, just juggle the directories around." msgstr "" "从一种布局转换到另一种布局仅仅是在服务器端移动一些文件或目录;如果你不喜欢版本" "库的组织形式,仅管大胆地修改那些目录。" #. (para) msgid "create a new empty folder on your hard drive" msgstr "在你的硬盘上创建一个空的文件夹" #. (para) msgid "" "create your desired top-level folder structure inside that folder - don't put " "any files in it yet!" msgstr "在那个文件夹下创建你想要的顶级目录--千万不要放任何文件进去!" #. (para) msgid "" "import this structure into the repository via a right click " "on the folder and selecting TortoiseSVNImport... This will import " "your temp folder into the repository root to create the basic repository " "layout." msgstr "" "通过在那个文件夹右键,选择TortoiseSVN导入... 将这个结构导入到版本库" "中。这将导入临时文件夹到版本库的根目录形成一个基本的版本库布局。" #. (para) msgid "" "So if you haven't already created a basic folder structure inside your " "repository you should do that now. There are two ways to achieve this. If you " "simply want to create a /trunk /tags /branches " "structure, you can use the repository browser to create the three folders (in " "three separate commits). If you want to create a deeper hierarchy then it is " "simpler to create a folder structure on disk first and import it in a single " "commit, like this: " msgstr "" "因此,如果你还没有在版本库中创建基本的文件夹结构,你应该立刻创建。创建文件夹" "有 2 种方法。如果你只想创建一个 /trunk /tags /branches 结" "构,你可以使用版本库浏览器创建这 3 个文件夹(独立的 3 次提交)。如果你想创建一个" "层次更深的结构,那么更简单的做法是先在硬盘中创建好文件夹结构,然后将其导入(只" "有 1 次提交),就像这样: " #. (para) msgid "" "Note that the name of the folder you are importing does not appear in the " "repository, only its contents. For example, create the following folder " "structure: \n" "C:\\Temp\\New\\trunk\n" "C:\\Temp\\New\\branches\n" "C:\\Temp\\New\\tags\n" " Import C:\\Temp\\New into the repository root, " "which will then look like this: \n" "/trunk\n" "/branches\n" "/tags\n" "" msgstr "" "注意,你所导入的那个文件夹的名字并不存在于版本库中,仅仅是它所包含的内容。比" "如,创建如下结构的文件夹\n" "C:\\Temp\\New\\trunk\n" "C:\\Temp\\New\\branches\n" "C:\\Temp\\New\\tags\n" "导入C:\\Temp\\New到版本库的根目录,版本库中将会" "是这样: \n" "/trunk\n" "/branches\n" "/tags\n" "" #. (title) msgid "Repository Backup" msgstr "版本库备份" #. (primary) msgid "backup" msgstr "备份" #. (para) msgid "" "Whichever type of repository you use, it is vitally important that you " "maintain regular backups, and that you verify the backup. If the server " "fails, you may be able to access a recent version of your files, but without " "the repository all your history is lost forever." msgstr "" "无论你使用何种版本库,定期维护和验证版本库备份非常重要,或许你可以访问最近版本" "的文件,但是如果没有版本库,所有的历史将会丢失。" #. (para) msgid "" "The simplest (but not recommended) way is just to copy the repository folder " "onto the backup medium. However, you have to be absolutely sure that no " "process is accessing the data. In this context, access means any access at all. A BDB repository is written to even when the " "operation only appears to require reading, such as getting status. If your " "repository is accessed at all during the copy, (web browser left open, " "WebSVN, etc.) the backup will be worthless." msgstr "" "最简单(但不推荐)的方法是复制整个版本库目录到备份介质,然而你必须绝对确定没有访" "问数据的进程,在这里“访问”的意思是任何访问,一个BDB版本库" "即使在访问看起来只需要读时也会有写操作,如果在复制时版本库被访问了(web浏览器," "WebSVN等等),备份将毫无价值。" #. (para) msgid "" "The recommended method is to run \n" "svnadmin hotcopy path/to/repository path/to/backup --clean-logs\n" " to create a copy of your repository in a safe manner. Then backup " "the copy. The --clean-logs option is not required, but " "removes any redundant log files when you backup a BDB repository, which may " "save some space." msgstr "" "推荐的方法是运行\n" "svnadmin hotcopy path/to/repository path/to/backup --clean-logs\n" ",用一种安全的方式创建版本库的备份,备份是一个副本,--clean-" "logs选项并不必须,但是通过删除BDB版本库中多余的日志文件可以节省一些" "空间。" #. (para) #, fuzzy msgid "" "The svnadmin tool is installed automatically when you " "install the Subversion command line client. If you are installing the command " "line tools on a Windows PC, the best way is to download the Windows installer " "version. It is compressed more efficiently than the .zip " "version, so the download is smaller, and it takes care of setting the paths " "for you. You can download the latest version of the Subversion command line " "client from http://subversion.apache.org/getting.html." msgstr "" "svnadmin在安装Subversion命令行客户端时会自动安装,如果你在" "Windows PC上安装这个命令行工具,最好的方式是下载Windows安装版本,它比" ".zip版本的压缩效率更好,所以更小,并且小心的为你设定路" "径。你可以从http://subversion.tigris.org/" "getting.html下载最新版本的命令行客户端。" #. (title) msgid "Server side hook scripts" msgstr "服务器端钩子脚本" #. (primary) msgid "hooks" msgstr "钩子" #. (primary) #. (primary) msgid "hook scripts" msgstr "钩子脚本" #. (primary) msgid "server side hook scripts" msgstr "服务器端钩子脚本" #. (para) #, fuzzy msgid "" "A hook script is a program triggered by some repository event, such as the " "creation of a new revision or the modification of an unversioned property. " "Each hook is handed enough information to tell what that event is, what target" "(s) it's operating on, and the username of the person who triggered the " "event. Depending on the hook's output or return status, the hook program may " "continue the action, stop it, or suspend it in some way. Please refer to the " "chapter on Hook Scripts in the Subversion Book for full details about the hooks " "which are implemented." msgstr "" "钩子脚本是被一些版本库事件触发的程序,例如创建新版本,或修改非版本控制的属性。" "每种钩子都会被告知事件的足够信息,操作的目标,触发事件的用户名。依赖于钩子的输" "出或返回状态,钩子程序可以继续执行,停止或以某种方式挂起。请参阅 Subversion 手" "册的 钩子脚本 部" "分以获得关于实现钩子的细节。" #. (para) msgid "" "These hook scripts are executed by the server that hosts the repository. " "TortoiseSVN also allows you to configure client side hook scripts that are " "executed locally upon certain events. See for more information." msgstr "" "这些钩子脚本被版本库所在的服务器执行。TortoiseSVN 也允许你配置由确定事件触发," "在本地执行的客户端脚本。请参看 以" "获得更多信息。" #. (para) msgid "" "Sample hook scripts can be found in the hooks directory " "of the repository. These sample scripts are suitable for Unix/Linux servers " "but need to be modified if your server is Windows based. The hook can be a " "batch file or an executable. The sample below shows a batch file which might " "be used to implement a pre-revprop-change hook. \n" "rem Only allow log messages to be changed.\n" "if \"%4\" == \"svn:log\" exit 0\n" "echo Property '%4' cannot be changed >&2\n" "exit 1\n" " Note that anything sent to stdout is discarded. if you want a " "message to appear in the Commit Reject dialog you must send it to stderr. In " "a batch file this is achieved using >&2" msgstr "" "版本库的hooks目录中有一些钩子的例子脚本,这些例子脚本适合" "于Unix/Linux服务器,在Windows下需要修改。钩子可以是批处理文件或可执行文件,下" "面是用来实现pre-revprop-change钩子的例子。\n" "rem Only allow log messages to be changed.\n" "if \"%4\" == \"svn:log\" exit 0\n" "echo Property '%4' cannot be changed >&2\n" "exit 1\n" "请注意所有发送到标准输出的东西都会被忽略,如果你希望信息出现在拒绝提" "交对话框中,你需要将这些信息发送到标准错误,在一个批处理文件中使用" ">&2实现。" #. (title) msgid "Checkout Links" msgstr "检出链接" #. (primary) msgid "checkout link" msgstr "检出链接" #. (primary) msgid "TortoiseSVN link" msgstr "TortoiseSVN 链接" #. (primary) msgid "link" msgstr "链接" #. (primary) msgid "website" msgstr "WEB 站点" #. (para) msgid "" "If you want to make your Subversion repository available to others you may " "want to include a link to it from your website. One way to make this more " "accessible is to include a checkout link for other " "TortoiseSVN users." msgstr "" "如果你希望你的 Subversion 版本库对于别人可用,你可以在你的站点包含一个链接。为" "了让其更加容易访问,你可以为其它 TortoiseSVN 用户包含一个检出链接。" #. (para) msgid "" "When you install TortoiseSVN, it registers a new tsvn: " "protocol. When a TortoiseSVN user clicks on such a link, the checkout dialog " "will open automatically with the repository URL already filled in." msgstr "" "当你安装了 TortoiseSVN,它会注册一个 tsvn: 协议,当 " "TortoiseSVN 用户点击这样一个链接,检出窗口会自动弹出,且版本库 URL 已经填入。" #. (programlisting) #, fuzzy, no-wrap msgid "" "\n" "<a href=\"tsvn:http://project.domain.org/svn/trunk\">\n" "</a>\n" msgstr "" "\n" "<a href=\"tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk\">\n" "</a>\n" #. (para) #, fuzzy msgid "" "To include such a link in your own html page, you need to add code which " "looks something like this: " msgstr "" "为了在你自己的网页上包含这样一个链接,你需要添加类似下面的代码: \n" "<a href=\"tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk\">" "</a>\n" "" #. (programlisting) #, fuzzy, no-wrap msgid "" "\n" "<a href=\"tsvn:http://project.domain.org/svn/trunk\">\n" "<img src=TortoiseCheckout.png></a>\n" msgstr "" "\n" "<a href=\"tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk\">\n" "<img src=TortoiseCheckout.png></a>\n" #. (para) #, fuzzy msgid "" "Of course it would look even better if you included a suitable picture. You " "can use the TortoiseSVN logo or you " "can provide your own image. " msgstr "" "当然,如果你提供一个合适的图片会更好,你可以使用TortoiseSVN " "logo,也可以使用自己的图片。\n" "<a href=\"tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk\">\n" "<img src=TortoiseCheckout.png></a>\n" "" #. (programlisting) #, fuzzy, no-wrap msgid "" "\n" "<a href=\"tsvn:http://project.domain.org/svn/trunk?100\">\n" "</a>\n" msgstr "" "\n" "<a href=\"tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk?100\">\n" "</a>\n" #. (para) msgid "" "You can also make the link point to a specific revision, for example " "" msgstr "你同样可以使链接指向一个特定的版本,例如 " #. (title) #, fuzzy msgid "Accessing the Repository" msgstr "本地访问版本库" #. (para) #, fuzzy msgid "" "To use TortoiseSVN (or any other Subversion client), you need a place where " "your repositories are located. You can either store your repositories locally " "and access them using the file:// protocol or you can " "place them on a server and access them with the http:// or " "svn:// protocols. The two server protocols can also be " "encrypted. You use https:// or svn+ssh://, or you can use svn:// with SASL." msgstr "" "为了使用TortoiseSVN(或任何其他Subversion客户端),你需要放置你的版本库,你可以" "将版本库存于本地并使用file://协议访问,也可以放置于服务" "器,使用http://svn://访问,这两种" "服务器协议也可以被加密,使用https://svn" "+ssh://。本章介绍了在Windows主机上设置一个服务器的步骤。" #. (para) msgid "" "If you are using a public hosting service such as Google Code or your " "server has already been setup by someone else then there is nothing else you " "need to do. Move along to ." msgstr "" "如果你使用公共的主机服务,例如 Google Code,或者已经有人为你架设好了服务" "器,那么在这里你不用做什么。前进到 。" #. (para) #, fuzzy msgid "" "If you don't have a server and you work alone, or if you are just evaluating " "Subversion and TortoiseSVN in isolation, then local repositories are probably " "your best choice. Just create a repository on your own PC as described " "earlier in . You can skip the rest of this " "chapter and go directly to to find out how to " "start using it." msgstr "" "如果你没有一个服务器,或者你独自工作,本地版本库会是你的最佳选择,你可以跳过本" "章,直接到。" #. (para) msgid "" "If you were thinking about setting up a multi-user repository on a network " "share, think again. Read to " "find out why we think this is a bad idea. Setting up a server is not as hard " "as it sounds, and will give you better reliability and probably speed too." msgstr "" "如果你打算在网络共享中设者一个多用户的版本库,请重新考虑。阅读以了解为什么我们认为这是一个坏主意。设置一个" "服务器并不像听上去那样难。并且还会为你提供更好的性能甚至更快的速度。" #. (para) #, fuzzy msgid "" "The next sections are a step-by-step guide on how you can set up such a " "server on a Windows machine. Of course you can also set up a server on a " "Linux machine, but that is beyond the scope of this guide. More detailed " "information on the Subversion server options, and how to choose the best " "architecture for your situation, can be found in the Subversion book under " "Server Configuration." msgstr "" "关于 Subversion 服务器选项的详细信息,以及如何根据你的情况选择最好的架构,可以" "参考 Subversion 手册的服务器配置。" #. (title) msgid "Svnserve Based Server" msgstr "基于 svnserve 的服务器" #. (para) msgid "" "Subversion includes Svnserve - a lightweight stand-alone server which uses a " "custom protocol over an ordinary TCP/IP connection. It is ideal for smaller " "installations, or where a full blown Apache server cannot be used." msgstr "" "在 Subversion 中包含 Svnserve - 一个轻型的独立服务器,它使用一个基于一般 TCP/" "IP 连接的定制协议。用于小型安装,或者不能使用全能 Apache 服务器的地方。" #. (para) #, fuzzy msgid "" "In most cases svnserve is easier to setup and runs faster than the Apache " "based server, although it doesn't have some of the advanced features. And now " "that SASL support is included it is easy to secure as well." msgstr "大多数情况下 svnserve 的设置更加简单,也比 Apache 的服务器更加快。" #. (title) msgid "Installing svnserve" msgstr "安装 svnserve" #. (para) msgid "" "Get the latest version of Subversion from http://subversion.apache.org/getting." "html. Alternatively get a pre-packaged installer from " "CollabNet at http://www.collab.net/downloads/subversion. " "This installer will setup svnserve as a Windows service, and also includes " "some of the tools you need if you are going to use SASL for security." msgstr "" "可以从这里获取最新版本的 Subversion http://subversion.apache.org/getting.html。另外,也可以从 ColabNet 获取一个打包好的安装程序 http://www." "collab.net/downloads/subversion 。这个安装程序将会把 " "svnserve 设置为 Windows 服务,并且还包含了一些你需要的工具,如果你为了安全而使" "用 SASL。" #. (para) msgid "" "If you already have a version of Subversion installed, and svnserve is " "running, you will need to stop it before continuing." msgstr "" "如果你已经安装了 Subversion,svnserve 已经运行,你需要在继续之前把它停下来。" #. (para) msgid "" "Run the Subversion installer. If you run the installer on your server " "(recommended) you can skip step 4." msgstr "" "运行 Subversion 安装程序,如果你在你的服务器(推荐)上运行,可以跳过第 4 步。" #. (para) msgid "" "Open the windows-explorer, go to the installation directory of Subversion " "(usually C:\\Program Files\\Subversion) and in the " "bin directory, find the files svnserve.exe, intl3_svn.dll, libapr.dll, libapriconv.dll, libapriutil.dll, libdb*.dll, libeay32.dll " "and ssleay32.dll - copy these files, or just copy all of " "the bin directory, into a directory on your server e.g. " "c:\\svnserve" msgstr "" "打开资源管理器,进入Subversion的安装目录(通常是C:\\Program Files" "\\Subversion)的bin目录,找到文件" "svnserve.exeintl3_svn.dll," "libapr.dlllibapriconv.dll," "libapriutil.dlllibdb*.dll," "libeay32.dllssleay32.dll,复制这些" "文件,或所有bin目录内的文件到你的服务器目录,例如" "c:\\svnserve。" #. (title) msgid "Running svnserve" msgstr "运行 svnserve" #. (para) msgid "" "Now that svnserve is installed, you need it running on your server. The " "simplest approach is to run the following from a DOS shell or create a " "windows shortcut: \n" "svnserve.exe --daemon\n" " svnserve will now start waiting for incoming requests on port 3690. " "The --daemon switch tells svnserve to run as a daemon process, so it will " "always exist until it is manually terminated." msgstr "" "现在svnserve已经安装了,你需要在你的server运行它,最简单的方法是在DOS窗口或者" "windows快捷方式输入: \n" "svnserve.exe --daemon\n" "svnserve将会在端口3690等待请求,--daemon选项告诉svnserve以守护进程方" "式运行,这样在手动终止之前不会退出。" #. (para) msgid "" "If you have not yet created a repository, follow the instructions given with " "the Apache server setup ." msgstr "" "如果你没有创建一个版本库,根据下面的Apache服务器设置指令。" #. (para) msgid "" "To test that svnserve is working, use TortoiseSVNRepo-Browser to view a " "repository." msgstr "" "为了验证svnserve正常工作,使用TortoiseSVN版本库浏览器来查看版本库。" #. (para) msgid "" "Assuming your repository is located in c:\\repos\\TestRepo, and your server is called localhost, enter: " "\n" "svn://localhost/repos/TestRepo\n" " when prompted by the repo browser." msgstr "" "假定你的版本库位于c:\\repos\\TestRepo,你的服务器叫做" "localhost,输入: \n" "svn://localhost/repos/TestRepo\n" "当被版本库浏览器提示输入。" #. (para) msgid "" "You can also increase security and save time entering URLs with svnserve by " "using the --root switch to set the root location and restrict access to a " "specified directory on the server: \n" "svnserve.exe --daemon --root drive:\\path\\to\\repository\\root\n" " Using the previous test as a guide, svnserve would now run as: " "\n" "svnserve.exe --daemon --root c:\\repos\n" " And in TortoiseSVN our repo-browser URL is now shortened to: " "\n" "svn://localhost/TestRepo\n" " Note that the --root switch is also needed if your repository is " "located on a different partition or drive than the location of svnserve on " "your server." msgstr "" "你也可以使用 --root 选项设置根位置来限制访问服务器的目录,从而增加安全性和节约" "输入 svnserve URL 的时间: \n" "svnserve.exe --daemon --root drive:\\path\\to\\repository\\root\n" "以前面的测试为例,svnserve 现在的运行命令为: \n" "svnserve.exe --daemon --root c:\\repos\n" "然后在 TortoiseSVN 中我们的版本库浏览器 URL 缩短为: \n" "svn://localhost/TestRepo\n" "注意,当 svnserve 和版本库位于不同分区或盘符时也需要使用 --root 选" "项。" #. (para) msgid "" "Svnserve will service any number of repositories. Just locate them somewhere " "below the root folder you just defined, and access them using a URL relative " "to that root." msgstr "" "Svnserve 可以提供任意数量的版本库服务。只要将这些版本库放到你刚才定义的根目录" "下即可,然后使用相对于根的URL访问它们。" #. (title) msgid "Run svnserve as a Service" msgstr "以服务形式运行 svnserve" #. (para) msgid "" "Running svnserve as a user is usually not the best way. It means always " "having a user logged in on your server, and remembering to restart it after a " "reboot. A better way is to run svnserve as a windows service. Starting with " "Subversion 1.4, svnserve can be installed as a native windows service." msgstr "" "使用普通用户直接运行 svnserve 通常不是最好的方法。它意味着你的服务器必须有一个" "用户登录,还要记着重新启动服务器后重新启动 svnserve。最好的方法是将 svnserve " "作为 windows 服务运行。从 Subversion 1.4 开始,svnserve 可以安装为 windows 服" "务。" #. (para) #, fuzzy msgid "" "To install svnserve as a native windows service, execute the following " "command all on one line to create a service which is automatically started " "when windows starts. \n" "sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service \n" " --root c:\\repos\" displayname= \"Subversion\" depend= tcpip \n" " start= auto\n" " If any of the paths include spaces, you have to use (escaped) " "quotes around the path, like this: \n" "sc create svnserve binpath= \"\n" " \\\"C:\\Program Files\\Subversion\\bin\\svnserve.exe\\\"\n" " --service --root c:\\repos\" displayname= \"Subversion\" \n" " depend= tcpip start= auto\n" " You can also add a description after creating the service. This " "will show up in the Windows Services Manager. \n" "sc description svnserve \"Subversion server (svnserve)\"\n" "" msgstr "" "为了将 svnserve 安装为 Windows 服务,在一行内执行下面的命令,创建一个当 " "Windows 启动后,自动启动的服务。\n" "sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service \n" " --root c:\\repos\" displayname= \"Subversion\" depend= tcpip start= auto\n" " 如果任一个路径包含空格,你必须使用双引号(逃逸字符)包含路径,例如:" "\n" "sc create svnserve binpath= \"\\\"C:\\Program Files\\Subversion\\bin" "\\svnserve.exe\\\"\n" " --service --root c:\\repos\" displayname= \"Subversion\" depend= tcpip " "start= auto\n" " 在创建服务以后,你还可以增加描述。它在 Windows 服务管理器中显示。" "\n" "sc description svnserve \"Subversion server (svnserve)\"\n" "" #. (para) msgid "" "Note the rather unusual command line format used by sc. In " "the key= value pairs there must be no space between the " "key and the = but there must be a space before the value." msgstr "" "注意 sc 的命令行很特殊。在 key= value 对" "中,key 与 = 之间不能有空格,但是在 value 之前,必须有空" "格。" #. (para) msgid "" "Microsoft now recommend services to be run as under either the Local Service " "or Network Service account. Refer to The Services and Service Accounts Security Planning Guide. To create the service under the Local Service account, " "append the following to the example above. \n" "obj= \"NT AUTHORITY\\LocalService\"\n" " Note that you would have to give the Local Service account " "appropriate rights to both Subversion and your repositories, as well as any " "applications which are used by hook scripts. The built-in group for this is " "called \"LOCAL SERVICE\"." msgstr "" "Microsoft 现在建议服务程序使用本地服务或网络服务帐户运行,参考 The Services and Service Accounts " "Security Planning Guide。以本地服务帐户创建服务,需要在上" "面的例子里追加下面几行。\n" "obj= \"NT AUTHORITY\\LocalService\"\n" "请注意需要给本地服务帐户一些目录的适当权限,包括的 Subversion 和你的" "版本库,还有所有钩子脚本使用的应用。此帐号的内置组名是\"LOCAL SERVICE\"。" #. (para) msgid "" "Once you have installed the service, you need to go to the services manager " "to start it (this time only; it will start automatically when the server " "reboots)." msgstr "" "服务安装完毕后,你需要在服务管理器中启动它(仅此一次;当服务器重启后它会自动启" "动)。" #. (para) msgid "" "For more detailed information, refer to Windows Service " "Support for Svnserve." msgstr "" "为了得到更详细的信息,可参考 Windows Service Support for " "Svnserve。" #. (para) msgid "" "If you installed an earlier version of svnserve using the " "SVNService wrapper, and you now want to use the native " "support instead, you will need to unregister the wrapper as a service " "(remember to stop the service first!). Simply use the command \n" "svnservice -remove\n" " to remove the service registry entry." msgstr "" "如果你已经使用 SvnService 包装安装了早期的 svnserve,现在想" "使用内置服务,那么你需要将其从服务中删除(切记先停止服务!)。使用简单的命令 " "\n" "svnservice -remove\n" " 即可删除服务。" #. (title) msgid "Basic Authentication with svnserve" msgstr "svnserve 与基本认证" #. (para) #, fuzzy msgid "" "The default svnserve setup provides anonymous read-only access. This means " "that you can use an svn:// URL to checkout and update, or " "use the repo-browser in TortoiseSVN to view the repository, but you won't be " "able to commit any changes." msgstr "" "缺省的 svnserve 配置提供了匿名的只读访问。这意味着你可以使用 svn://" " 的 URL 进行检出和更新,或者使用 TortoiseSVN 的版本库浏览器查看版本" "库,但是不能提交任何修改。" #. (para) msgid "" "To enable write access to a repository, you need to edit the conf/" "svnserve.conf file in your repository directory. This file " "controls the configuration of the svnserve daemon, and also contains useful " "documentation." msgstr "" "为了打开对版本库的写访问,你可以编辑版本库目录的conf/svnserve.conf文件,这个文件控制了svnserve守护进程的配置,也提供了有用的文档。" #. (para) msgid "" "You can enable anonymous write access by simply setting: \n" "[general]\n" "anon-access = write\n" " However, you will not know who has made changes to a repository, as " "the svn:author property will be empty. You will also be " "unable to control who makes changes to a repository. This is a somewhat risky " "setup!" msgstr "" "为了打开匿名的写访问,只需要简单得设置: \n" "[general]\n" "anon-access = write\n" "然而,你不会知道谁修改了版本库,因为svn:author属性" "是空的,你也不能控制谁来修改版本库,这是一个很危险的设置。" #. (para) msgid "" "One way to overcome this is to create a password database: \n" "[general]\n" "anon-access = none\n" "auth-access = write\n" "password-db = userfile\n" " Where userfile is a file which exists in the " "same directory as svnserve.conf. This file can live " "elsewhere in your file system (useful for when you have multiple repositories " "which require the same access rights) and may be referenced using an absolute " "path, or a path relative to the conf directory. If you " "include a path, it must be written /the/unix/way. Using " "\\ or drive letters will not work. The userfile should " "have a structure of: \n" "[users]\n" "username = password\n" "...\n" " This example would deny all access for unauthenticated (anonymous) " "users, and give read-write access to users listed in userfile." msgstr "" "解决这个问题的一个方法是创建密码数据库: \n" "[general]\n" "anon-access = none\n" "auth-access = write\n" "password-db = userfile\n" "这里的 userfilesvnserve.conf 文件在同一个目录,这个文件也可以存在于文件系统的其他地方(当多个版本" "库使用相同的访问权限时尤其有用),可以使用绝对路径,或者是 conf 的相对目录,使用 \\ 或盘符不能工作。userfile 的" "结构如下:\n" "[general]\n" "anon-access = none\n" "auth-access = write\n" "password-db = userfile\n" "这个例子拒绝所有的未认证用户(匿名)访问,给 userfile 中的用户读写权限。" #. (para) #, fuzzy msgid "" "If you maintain multiple repositories using the same password database, the " "use of an authentication realm will make life easier for users, as " "TortoiseSVN can cache your credentials so that you only have to enter them " "once. More information can be found in the Subversion book, specifically in " "the sections Create a " "'users' file and realm and Client Credentials Caching" msgstr "" "如果使用相同的密码数据库维护多个版本库,使用一个认证域将让用户的工作更加简单," "因为 TortoiseSVN 可以缓存你的凭证,所以你只需要输入一次,更多的信息可以参考 " "Subversion 手册的 " "创建用户文件和域客户端凭证缓存。" #. (title) msgid "Better Security with SASL" msgstr "使用 SASL 以便更安全" #. (primary) msgid "SASL" msgstr "SASL" #. (title) msgid "What is SASL?" msgstr "什么是 SASL?" #. (para) msgid "" "The Cyrus Simple Authentication and Security Layer is open source software " "written by Carnegie Mellon University. It adds generic authentication and " "encryption capabilities to any network protocol, and as of Subversion 1.5 and " "later, both the svnserve server and TortoiseSVN client know how to make use " "of this library." msgstr "" "Cyrus 简单的认证和安全层(The Cyrus Simple Authentication and Security Layer)是" "一个由卡耐基梅隆大学编写的开源软件。它可以为任何网络协议增加通用认证和加密的能" "力,并且从 Subversion 1.5 开始所有的后续版本,包括 svnserve 服务器和 " "TortoiseSVN 客户端知道如何使用这个库。" #. (para) msgid "" "For a more complete discussion of the options available, you should look at " "the Subversion book in the section Using svnserve with SASL. If you are just " "looking for a simple way to set up secure authentication and encryption on a " "Windows server, so that your repository can be accessed safely over the big " "bad Internet, read on." msgstr "" "要获得这一选项可用性的更充分讨论,你应该看一下 Subversion 手册中的通过 SASL 使用 svnserve 。如果你仅仅是找一种简单的方法为 Windows 服务器设置安全的认证和加密,因" "此你的版本库可以安全的通过又大又乱的互联网访问,请继续阅读。" #. (title) msgid "SASL Authentication" msgstr "SASL 认证" #. (para) msgid "" "To activate specific SASL mechanisms on the server, you'll need to do three " "things. First, create a [sasl] section in your " "repository's svnserve.conf file, with this key-value " "pair: \n" "use-sasl = true\n" "" msgstr "" "要在服务器上激活详尽的 SASL 功能,你需要做 3 件事。首先,在你的版本库的 " "svnserve.conf 文件中创建一个 [sasl] " "节,包括这样一个配置项:\n" "use-sasl = true\n" "" #. (para) msgid "" "Second, create a file called svn.conf in a convenient " "location - typically in the directory where subversion is installed." msgstr "" "其次,在一个合适的地方创建一个名为 svn.conf 的文件 - 通常" "在 Subversion 的安装目录中。" #. (para) msgid "" "Thirdly, create two new registry entries to tell SASL where to find things. " "Create a registry key named [HKEY_LOCAL_MACHINE\\SOFTWARE\\Carnegie " "Mellon\\Project Cyrus\\SASL Library] and place two new string " "values inside it: SearchPath set to the directory path " "containing the sasl*.dll plug-ins (normally in the " "Subversion install directory), and ConfFile set to the " "directory containing the svn.conf file. If you used the " "CollabNet installer, these registry keys will already have been created for " "you." msgstr "" "第三,创建 2 个新的注册表项目来告诉 SASL 到哪里找到需要的东西。创建一个名为的 " "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Carnegie Mellon\\Project Cyrus\\SASL " "Library] 注册表键并在其中创建两个新的字符串值:SearchPath 设置为 sasl*.dll 插件所在的目录路径(通常是 " "Subversion 的安装目录),ConfFile 设置为 svn." "conf 文件所在的目录。如果你使用 CollabNet 安装程序,这两个注册表键" "就已经为你创建好了。" #. (para) msgid "" "Edit the svn.conf file to contain the following: " "\n" "pwcheck_method: auxprop\n" "auxprop_plugin: sasldb\n" "mech_list: DIGEST-MD5\n" "sasldb_path: C:\\TortoiseSVN\\sasldb\n" " The last line shows the location of the authentication database, " "which is a file called sasldb. This could go anywhere, " "but a convenient choice is the repository parent path. Make sure that the " "svnserve service has read access to this file." msgstr "" "编辑文件 svn.conf,使其包括下列内容:\n" "pwcheck_method: auxprop\n" "auxprop_plugin: sasldb\n" "mech_list: DIGEST-MD5\n" "sasldb_path: C:\\TortoiseSVN\\sasldb\n" " 最后一行指示认证数据库的位置,认证数据库是一个名为 " "sasldb 的文件。它可以在任何地方,不过一个方便的选择是在版" "本库的上层目录中。确认 svnserve 服务有读取这个文件的权限。" #. (para) msgid "" "If svnserve was already running, you will need to restart it to ensure it " "reads the updated configuration." msgstr "" "如果 svnserve 已经在运行,你需要重启服务,并确保它读取了更新后的配置参数。" #. (para) msgid "" "Now that everything is set up, all you need to do is create some users and " "passwords. To do this you need the saslpasswd2 program. If " "you used the CollabNet installer, that program will be in the install " "directory. Use a command something like this: \n" "saslpasswd2 -c -f C:\\TortoiseSVN\\sasldb -u realm username\n" " The -f switch gives the database location, " "realm must be the same as the value you defined in your " "repository's svnserve.conf file, and username is exactly " "what you expect it to be. Note that the realm is not allowed to contain space " "characters." msgstr "" "现在所有的东西已经设置完成,你要做的事情就是创建用户和密码。你需要 " "saslpasswd2 程序来做这件事。如果你使用 CollabNet 安装程序," "这个程序会在安装目录内。使用像这样的命令:\n" "saslpasswd2 -c -f C:\\TortoiseSVN\\sasldb -u realm username\n" "选项 -f 指明数据库的位置,realm 必须与版本库的 svnserve.conf 文件中设置相同的" "值, username 就是你要使用的用户名。注意 realm 不允许包含空字符。" #. (para) msgid "" "You can list the usernames stored in the database using the " "sasldblistusers2 program." msgstr "" "你可以使用 sasldblistusers2 程序列出数据库中储存的用户名。" #. (title) msgid "SASL Encryption" msgstr "SASL 加密" #. (para) msgid "" "To enable or disable different levels of encryption, you can set two values " "in your repository's svnserve.conf file: \n" "[sasl]\n" "use-sasl = true\n" "min-encryption = 128\n" "max-encryption = 256\n" "" msgstr "" "为了启用或禁用加密的不同等级,你可以设置版本库内文件 svnserve.conf 中的两个值: \n" "[sasl]\n" "use-sasl = true\n" "min-encryption = 128\n" "max-encryption = 256\n" "" #. (para) msgid "" "The min-encryption and max-encryption " "variables control the level of encryption demanded by the server. To disable " "encryption completely, set both values to 0. To enable simple checksumming of " "data (i.e., prevent tampering and guarantee data integrity without " "encryption), set both values to 1. If you wish to allow (but not require) " "encryption, set the minimum value to 0, and the maximum value to some bit-" "length. To require encryption unconditionally, set both values to numbers " "greater than 1. In our previous example, we require clients to do at least " "128-bit encryption, but no more than 256-bit encryption." msgstr "" "变量 min-encryptionmax-encryption 控" "制服务器所需要的加密强度。要完全禁用加密,就将这 2 个变量的值都设为 0。要启用" "简单的数据校验(例如,为了防止篡改和保证数据的完整,不加密),就将这 2 个值都设" "为 1。如果你想允许(但不强制)加密,将最小值设为 0,最大值设为任意位数。要强制加" "密,将这 2 个值设为大于 1 的数字。在前面的例子中,我们要求客户端至少进行 128 " "位加密,但是不大于 256 位加密。" #. (title) msgid "Authentication with svn+ssh" msgstr "使用 svn+ssh 认证" #. (para) msgid "" "Another way to authenticate users with a svnserve based server is to use a " "secure shell (SSH) to tunnel requests through. It is not as simple to set up " "as SASL, but it may be useful is some cases." msgstr "" "另一种 svnserve 认证的方法是使用 SSH 来建立请求通道。它不像设置 SASL 那样简" "单,但是某些场合却很有用。" #. (para) msgid "" "With this approach, svnserve is not run as a daemon process, rather, the " "secure shell starts svnserve for you, running it as the SSH authenticated " "user. To enable this, you need a secure shell daemon on your server." msgstr "" "通过此方法,svnserve 不会作为守护进程启动,而是 SSH 为你启动 svnserve,以 SSH " "认证的用户身份运行,为此,你需要在你的服务器上有 SSH 守护进程。" #. (para) msgid "" "A basic method for setting up your server is given in . You can find other SSH topics within the FAQ by searching for " "SSH." msgstr "" "设置服务器的基本方法请参见。你可以在常见问题" "(FAQ)中使用关键词 SSH 找到其它 SSH 相关的主题。" #. (para) msgid "" "Further information about svnserve can be found in the Version Control with Subversion." msgstr "" "更多的关于svnserve的信息可以看《使用 Subversion 进行版本管理》。" #. (title) msgid "Path-based Authorization with svnserve" msgstr "svnserve 基于路径的授权" #. (para) msgid "" "Starting with Subversion 1.3, svnserve supports the same " "mod_authz_svn path-based authorization scheme that is " "available with the Apache server. You need to edit the conf/" "svnserve.conf file in your repository directory and add a line " "referring to your authorization file. \n" "[general]\n" "authz-db = authz\n" " Here, authz is a file you create to define the " "access permissions. You can use a separate file for each repository, or you " "can use the same file for several repositories. Read for a description of the file format." msgstr "" "从 Subversion 1.3 开始,svnserve 支持与 mod_authz_svn 相同" "的基于路径的授权模式,你需要编辑版本库路径下的 conf/svnserve.conf 引用的授权文件。\n" "[general]\n" "authz-db = authz\n" "在这里,authz 是你创建用来定义访问权限的文件,你" "可以为每一个版本库使用单独的文件,或者为所有的版本库使用相同的文件,关于此文件" "的格式可以查看。" #. (title) msgid "Apache Based Server" msgstr "基于 Apache 的服务器" #. (primary) msgid "Apache" msgstr "Apache" #. (para) msgid "" "The most flexible of all possible server setups for Subversion is the Apache " "based one. Although a bit more complicated to set up, it offers benefits that " "other servers cannot:" msgstr "" "所有可能的服务器当中,Apache为基础的服务器是最灵活的,尽管配置有一点复杂,但是" "提供了其他服务器没有的便利: " #. (primary) #. (term) msgid "WebDAV" msgstr "WebDAV" #. (para) #, fuzzy msgid "" "The Apache based Subversion server uses the WebDAV protocol which is " "supported by many other programs as well. You could e.g. mount such a " "repository as a Web folder in the Windows explorer and then " "access it like any other folder in the file system." msgstr "" "基于 Apache 的 Subversion 服务器使用 WebDAV 协议,许多程序支持这个协议。例如你" "可以在 Windows 资源管理器中将这样的版本库装载为一个“网络文件夹”,就像访问文件" "系统的目录一样访问它。" #. (term) msgid "Browsing The Repository" msgstr "浏览版本库" #. (para) msgid "" "You can point your browser to the URL of your repository and browse the " "contents of it without having a Subversion client installed. This gives " "access to your data to a much wider circle of users." msgstr "" "你可以将浏览器指向版本库的URL,无需安装Subversion客户端就可以浏览内容,这样可" "以扩大访问你数据的用户圈。" #. (term) #. (title) msgid "Authentication" msgstr "认证" #. (para) msgid "" "You can use any authentication mechanism Apache supports, including SSPI and " "LDAP." msgstr "你可以使用所有Apache支持的认证机制,包括SSPI和LDAP。" #. (term) msgid "Security" msgstr "安全" #. (para) msgid "" "Since Apache is very stable and secure, you automatically get the same " "security for your repository. This includes SSL encryption." msgstr "" "因为Apache非常稳定和安全,你的版本库可以自动获得同样的安全性,包括SSL加密。" #. (title) msgid "Installing Apache" msgstr "安装 Apache" #. (para) msgid "" "Please note that Windows XP without the service pack 1 will lead to bogus " "network data and could therefore corrupt your repository!" msgstr "" "请注意,Windows XP 如果没有安装 SP1 将会导致不正常的网络传输,从而搞坏你的版本" "库!" #. (para) msgid "" "Download the latest version of the Apache web server from http://httpd.apache.org/download." "cgi. Make sure that you download the version 2.2.x - the " "version 1.3.xx won't work!" msgstr "" "从 http://" "httpd.apache.org/download.cgi 下载最新版本的 Apache,请确" "认你下载的版本是 2.2.x - 1.3.xx 的版本不能工作!" #. (para) msgid "" "The msi installer for Apache can be found by clicking on other " "files, then browse to binaries/win32. You may " "want to choose the msi file apache-2.2.x-win32-x86-openssl-0.9.x." "msi (the one that includes OpenSSL)." msgstr "" "点击 other files,然后浏览 binaries/win32,可以找到 msi 格式的 Apache 安装文件。你可以选择 msi 文件 " "apache-2.2.x-win32-x86-openssl-0.9.x.msi (这个包含有 " "OpenSSL)。" #. (para) msgid "" "Once you have the Apache2 installer you can double click on it and it will " "guide you through the installation process. Make sure that you enter the " "server-URL correctly (if you don't have a DNS name for your server just enter " "the IP-address). I recommend to install Apache for All Users, on " "Port 80, as a Service. Note: if you already have IIS or any other " "program running which listens on port 80 the installation might fail. If that " "happens, go to the programs directory, \\Apache Group\\Apache2" "\\conf and locate the file httpd.conf. Edit " "that file so that Listen 80 is changed to a free port, e." "g. Listen 81. Then restart the installation - this time it " "should finish without problems." msgstr "" "一旦你有了 Apache2 安装程序,你可以双击它,然后它会指导你的安装过程。请确认你" "输入的服务器 URL 正确(如果你的服务器没有 DNS 名称,请直接输入 IP 地址)。我建议" "为所有用户在 80 端口安装 Apache 服务。注意: 如果你已经有" "了 IIS 或其他监听 80 端口的程序,安装会失败。如果发生这种情况,直接到程序的安" "装目录 \\Apache Group\\Apache2\\conf,打开 " "httpd.conf。编辑文件的 Listen 80 为其" "他可用的端口,例如 Listen 81,然后重新启动 - 这样就不会那" "个问题了。" #. (para) msgid "" "Now test if the Apache web server is running correctly by pointing your web " "browser to http://localhost/ - a " "preconfigured Website should show up." msgstr "" "现在可以测试 Apache 服务器是否正确运行,将浏览器指向 http://localhost/ - 将会看到一个预先配置的网站。" #. (para) msgid "" "If you decide to install Apache as a service, be warned that by default it " "will run as the local system account. It would be a more secure practice for " "you to create a separate account for Apache to run as." msgstr "" "如果你决定将Apache安装为服务,缺省情况以本地系统帐户运行会发出警告,更安全的方" "法是为Apache创建一个单独的运行帐户。" #. (para) msgid "" "Make sure that the account on the server that Apache is running as has an " "explicit entry in the repository directory's access control list (right-click " "directory | properties | security), with full control. Otherwise, users will " "not be able to commit their changes." msgstr "" "请确认Apache运行的帐户是版本库目录的访问控制列表(右键目录|属性|安全)中一个明确" "的条目,对目录有完全的控制能力,否则,用户不能提交他们的修改。" #. (para) msgid "" "Even if Apache runs as local system, you still need such an entry (which will " "be the SYSTEM account in this case)." msgstr "" "即使Apache运行于本地系统,你仍然需要这个条目(这种情况下将是SYSTEM帐户)。" #. (para) msgid "" "If Apache does not have this permission set up, your users will get " "Access denied error messages, which show up in the Apache " "error log as error 500." msgstr "" "如果没有配置 Apache 的此访问权限,你的用户会得到拒绝访问(Access denied)" "的错误信息,在 Apache 的错误日志中的错误代码是 500。" #. (para) msgid "" "The first thing you need before installing Apache is a computer with Windows " "2000, Windows XP+SP1, Windows 2003, Vista or Server 2008. " "" msgstr "" "安装 Apache 的先决条件是有一台安装了 Windows 2000,Windows XP SP1+,Windows " "2003,Vista 或 Windows Server 2008 的计算机。" #. (title) msgid "Installing Subversion" msgstr "安装 Subversion" #. (para) #, fuzzy msgid "" "Download the latest version of the Subversion Win32 binaries for Apache. Be " "sure to get the right version to integrate with your version of Apache, " "otherwise you will get an obscure error message when you try to restart. If " "you have Apache 2.2.x go to http://subversion." "tigris.org/servlets/ProjectDocumentList?folderID=8100." msgstr "" "从http://subversion.tigris.org/servlets/" "ProjectDocumentList?folderID=91得到最新版本的Subversion。" #. (para) msgid "" "Run the Subversion installer and follow the instructions. If the Subversion " "installer recognized that you've installed Apache, then you're almost done. " "If it couldn't find an Apache server then you have to do some additional " "steps." msgstr "" "运行Subversion安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你" "就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。" #. (primary) #. (primary) msgid "mod_authz_svn" msgstr "mod_authz_svn" #. (para) msgid "" "Using the windows explorer, go to the installation directory of Subversion " "(usually c:\\program files\\Subversion) and find the " "files /httpd/mod_dav_svn.so and mod_authz_svn." "so. Copy these files to the Apache modules directory (usually " "c:\\program files\\apache group\\apache2\\modules )." msgstr "" "使用Windwos资源管理器,来到Subversion的安装目录(通常是c:\\program " "files\\Subversion),找到文件/httpd/mod_dav_svn.somod_authz_svn.so,复制这些文件到Apache的模块目" "录(通常是c:\\program files\\apache group\\apache2\\modules )。" #. (para) msgid "" "Copy the file /bin/libdb*.dll and /bin/" "intl3_svn.dll from the Subversion installation directory to the " "Apache bin directory." msgstr "" "从 Subversion 安装目录将 /bin/libdb*.dll/" "bin/intl3_svn.dll 复制到 Apache 的 bin 目录。" #. (para) msgid "" "Edit Apache's configuration file (usually C:\\Program Files" "\\Apache Group\\Apache2\\conf\\httpd.conf) with a text editor such " "as Notepad and make the following changes:" msgstr "" "使用记事本之类的文本编辑器修改Apache的配置文件(通常是 C:\\Program " "Files\\Apache Group\\Apache2\\conf\\httpd.conf),做出如下修改: " #. (para) msgid "" "Uncomment (remove the '#' mark) the following lines: " "\n" "#LoadModule dav_fs_module modules/mod_dav_fs.so\n" "#LoadModule dav_module modules/mod_dav.so\n" " Add the following two lines to the end of the LoadModule section. \n" "LoadModule dav_svn_module modules/mod_dav_svn.so\n" "LoadModule authz_svn_module modules/mod_authz_svn.so\n" "" msgstr "" "去掉以下几行的注释(删除 '#'标记): \n" "#LoadModule dav_fs_module modules/mod_dav_fs.so\n" "#LoadModule dav_module modules/mod_dav.so\n" " 将以下两行到 LoadModule 节的末尾。\n" "LoadModule dav_svn_module modules/mod_dav_svn.so\n" "LoadModule authz_svn_module modules/mod_authz_svn.so\n" "" #. (title) #. (term) msgid "Configuration" msgstr "配置" #. (para) #, fuzzy msgid "" "At the end of the config file add the following lines: \n" "<Location /svn>\n" " DAV svn\n" " SVNListParentPath on\n" " SVNParentPath D:\\SVN\n" " #SVNIndexXSLT \"/svnindex.xsl\"\n" " AuthType Basic\n" " AuthName \"Subversion repositories\"\n" " AuthUserFile passwd\n" " #AuthzSVNAccessFile svnaccessfile\n" " Require valid-user\n" "</Location>\n" " This configures Apache so that all your Subversion repositories are " "physically located below D:\\SVN. The repositories are " "served to the outside world from the URL: http://" "MyServer/svn/ . Access is restricted to known users/passwords " "listed in the passwd file." msgstr "" "在配置文件最后添加如下几行: \n" "<Location /svn>\n" "DAV svn\n" "SVNListParentPath on\n" "SVNParentPath D:\\SVN\n" "#SVNIndexXSLT \"/svnindex.xsl\"\n" "AuthType Basic\n" "AuthName \"Subversion repositories\"\n" "AuthUserFile passwd\n" "#AuthzSVNAccessFile svnaccessfile\n" "Require valid-user\n" "</Location>\n" "这个配置告诉 Apache 你所有的 Subversion 版本库位于 D:" "\\SVN。这些版本库对外的 URL 是: http://" "MyServer/svn/。访问被文件 passwd 中的用户/密" "码限制。" #. (para) msgid "" "To create the passwd file, open the command prompt (DOS-" "Box) again, change to the apache2 folder (usually " "c:\\program files\\apache group\\apache2) and create the " "file by entering \n" "bin\\htpasswd -c passwd <username>\n" " This will create a file with the name passwd " "which is used for authentication. Additional users can be added with " "\n" "bin\\htpasswd passwd <username>\n" "" msgstr "" "为了创建 passwd 文件,再次打开命令行提示符(DOS 窗口),进" "入 apache2 目录(通常是 c:\\program files" "\\apache group\\apache2),通过输入下面的命令创建文件\n" "bin\\htpasswd -c passwd <username>\n" "它将会创建名为 passwd 的文件用于认证。用下面的命令增加其它用户" "\n" "bin\\htpasswd passwd <username>\n" "" #. (para) msgid "Restart the Apache service again." msgstr "再次重启Apache服务。" #. (para) msgid "" "Point your browser to http://MyServer/svn/" "MyNewRepository (where MyNewRepository is " "the name of the Subversion repository you created before). If all went well " "you should be prompted for a username and password, then you can see the " "contents of your repository." msgstr "" "将浏览器指向http://MyServer/svn/MyNewRepository(MyNewRepository是你此前创建的版本库名),如果" "一切正常,你会被提示输入用户名和密码,然后你会看到版本库的内容。" #. (para) msgid "" "Now you have set up Apache and Subversion, but Apache doesn't know how to " "handle Subversion clients like TortoiseSVN yet. To get Apache to know which " "URL will be used for Subversion repositories you have to edit the Apache " "configuration file (usually located in c:\\program files\\apache " "group\\apache2\\conf\\httpd.conf) with any text editor you like (e." "g. Notepad): " msgstr "" "现在你已经配置了 Apache 和 Subversion,但是 Apache 不知道如何处理 Subversion " "客户端,例如TortoiseSVN。为了让 Apache 知道哪个 URL 是用作 Subversion 版本库," "你需要使用任意文本编辑器(例如记事本)编辑 Apache 的配置文件(通常是 c:" "\\program files\\apache group\\apache2\\conf\\httpd.conf): " "" #. (primary) msgid "SVNPath" msgstr "SVNPath" #. (primary) #. (literal) #. (primary) msgid "SVNParentPath" msgstr "SVNParentPath" #. (title) msgid "Apache httpd.conf Settings" msgstr "设置 Apache 的 httpd.conf" #. (entry) msgid "Setting" msgstr "设置" #. (entry) msgid "Explanation" msgstr "解释" #. (systemitem) msgid "http://MyServer/svn/" msgstr "http://MyServer/svn/" #. (entry) msgid "" "means that the Subversion repositories are available from the URL " "" msgstr "意思是Subversion版本库的URL是" #. (entry) msgid "" "tells Apache which module will be responsible to serve that URL - in this " "case the Subversion module." msgstr "告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。" #. (entry) msgid "" "For Subversion version 1.3 and higher, this directive enables listing all the " "available repositories under ." msgstr "" "对于 Subversion 1.3 或者更高版本,这个指示会列出所有 中的版本" "库。" #. (filename) msgid "D:\\SVN" msgstr "D:\\SVN" #. (entry) msgid "tells Subversion to look for repositories below " msgstr "告诉Subversion需要查看的版本库位于之下" #. (entry) msgid "Used to make the browsing with a web browser prettier." msgstr "使用它可以在用浏览器浏览时更好看。" #. (entry) msgid "is to activate basic authentication, i.e. Username/password" msgstr "激活基本认证,就是用户名/密码" #. (entry) msgid "" "is used as an information whenever an authentication dialog pops up to tell " "the user what the authentication is for" msgstr "用来说明何时弹出要求用户输入认证信息的认证对话框" #. (entry) msgid "specifies which password file to use for authentication" msgstr "指定使用的认证密码文件" #. (entry) msgid "Location of the Access file for paths inside a Subversion repository" msgstr "位置Subversion版本库的访问控制文件的路径" #. (entry) msgid "" "specifies that only users who entered a correct username/password are allowed " "to access the URL" msgstr "指定只有输入了正确的用户/密码的用户可以访问URL" #. (para) msgid "" "If you want your repository to have read access for everyone but write access " "only for specific users you can change the line \n" "Require valid-user\n" " to \n" "<LimitExcept GET PROPFIND OPTIONS REPORT>\n" "Require valid-user\n" "</LimitExcept>\n" "" msgstr "" "如果你希望所有人可以读你的版本库,但是只有特定用户可以写,你可以修改下面几行" "\n" "Require valid-user\n" " to \n" "<LimitExcept GET PROPFIND OPTIONS REPORT>\n" "Require valid-user\n" "</LimitExcept>\n" "" #. (para) msgid "" "Using a passwd file limits and grants access to all of " "your repositories as a unit. If you want more control over which users have " "access to each folder inside a repository you can uncomment the line " "\n" "#AuthzSVNAccessFile svnaccessfile\n" " and create a Subversion access file. Apache will make sure that " "only valid users are able to access your /svn location, " "and will then pass the username to Subversion's AuthzSVNAccessFile module so that it can enforce more granular access based upon rules " "listed in the Subversion access file. Note that paths are specified either as " "repos:path or simply path. If you don't " "specify a particular repository, that access rule will apply to all " "repositories under SVNParentPath. The format of the " "authorization-policy file used by mod_authz_svn is " "described in " msgstr "" "使用 passwd 可以整体的控制对版本库的访问,但是如果你希望" "精确的控制版本库目录访问,你可以去掉下行的注释\n" "#AuthzSVNAccessFile svnaccessfile\n" ",并且创建 Subversion 的访问控制文件。Apache 将会确保只有有效的用户可" "以访问你的 /svn 目录,然后将用户名传递给 Subversion 的 " "AuthzSVNAccessFile 模块,这样就可以根据 Subversion 访问控制文件内的规则实现更" "细粒度的访问控制。请注意路径可以是 repos:path 或简单的 " "path,如果你不指定特定的版本库,访问控制规则会应用到 " "SVNParentPath 下所有的版本库。使用的授权策略文件的格式在" "描述。" #. (para) msgid "" "To make browsing the repository with a web browser 'prettier', uncomment the " "line \n" "#SVNIndexXSLT \"/svnindex.xsl\"\n" " and put the files svnindex.xsl, " "svnindex.css and menucheckout.ico " "in your document root directory (usually C:/Program Files/Apache " "Group/Apache2/htdocs). The directory is set with the " "DocumentRoot directive in your Apache config file." msgstr "" "如果要使浏览器浏览仓库时更“漂亮”,请将去掉下行注释 \n" "#SVNIndexXSLT \"/svnindex.xsl\"\n" ",将文件 svnindex.xsl, svnindex.cssmenucheckout.ico 放到你的文档根目录中(通常" "是 C:/Program Files/Apache Group/Apache2/htdocs)。 这个目" "录在 Apache 配置文件中用 DocumentRoot 指示设置。" #. (para) #, fuzzy msgid "" "You can get those three files directly from our source repository at http://tortoisesvn.googlecode.com/svn/trunk/" "contrib/svnindex. ( explains how to access the TortoiseSVN source repository)." msgstr "" "你可以直接在我们的代码库http://tortoisesvn." "tigris.org/svn/tortoisesvn/trunk/contrib/svnindex中" "拿到这三个文件。如果访问这个链接需要认证,输入用户名称 guest,无需密码。" #. (para) msgid "" "The XSL file from the TortoiseSVN repository has a nice gimmick: if you " "browse the repository with your web browser, then every folder in your " "repository has an icon on the right shown. If you click on that icon, the " "TortoiseSVN checkout dialog is started for this URL." msgstr "" "TortoiseSVN 版本库中的 XSL 文件有个特性:如果你用浏览器浏览版本库,那么每个版" "本库中的目录右边会有个图标。如果你点击此图标,那么 TortoiseSVN 会为此 URL 启动" "检出对话框。" #. (para) msgid "" "A short explanation of what you just entered: But that's " "just an example. There are many, many more possibilities of what you can do " "with the Apache web server. " msgstr "" "你刚才输入的简短解释是: 但是那只是一个例子。对于 Apache 你有很" "多可能的选择。" #. (title) msgid "Multiple Repositories" msgstr "多版本库" #. (primary) msgid "Index of projects" msgstr "项目索引" #. (para) msgid "" "If you used the SVNParentPath directive then you don't " "have to change the Apache config file every time you add a new Subversion " "repository. Simply create the new repository under the same location as the " "first repository and you're done! In my company I have direct access to that " "specific folder on the server via SMB (normal windows file access). So I just " "create a new folder there, run the TortoiseSVN command " "TortoiseSVNCreate repository " "here... and a new project has a home..." msgstr "" "如果你使用 SVNParentPath 指示,你就不必在每次添加新 Subversion 版本库时修改 " "Apache 的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。在我" "的公司,我可以使用 SMB(普通的 windows 文件访问)直接访问服务器的文件夹,所以我" "直接在那里创建一个目录,运行 TortoiseSVN 命令" "TortoiseSVN在此创建版本库...,然后一个新的项目建立了..." #. (para) msgid "" "If you are using Subversion 1.3 or later, you can use the " "SVNListParentPath on directive to allow Apache to produce " "a listing of all available projects if you point your browser at the parent " "path rather than at a specific repository." msgstr "" "如果你使用 Subversion 1.3 或更高版本,可以使用 SVNListParentPath on 指示,这样当你使用浏览器访问父路径而不是具体某个版本库时 Apache 就会" "显示所有版本库列表。" #. (title) msgid "Path-Based Authorization" msgstr "路径为基础的授权" #. (primary) msgid "Authorization" msgstr "授权" #. (para) msgid "" "The mod_authz_svn module permits fine-grained control of " "access permissions based on user names and repository paths. This is " "available with the Apache server, and as of Subversion 1.3 it is available " "with svnserve as well." msgstr "" "mod_authz_svn 模块可以根据用户名和路径实现细粒度的权限控" "制,它对 Apache 服务器有效,在 Subversion 1.3 以上版本的 svnserve 中也实现了基" "于路径的授权。" #. (para) msgid "" "An example file would look like this: \n" "[groups]\n" "admin = john, kate\n" "devteam1 = john, rachel, sally\n" "devteam2 = kate, peter, mark\n" "docs = bob, jane, mike\n" "training = zak\n" "# Default access rule for ALL repositories\n" "# Everyone can read, admins can write, Dan German is excluded.\n" "[/]\n" "* = r\n" "@admin = rw\n" "dangerman =\n" "# Allow developers complete access to their project repos\n" "[proj1:/]\n" "@devteam1 = rw\n" "[proj2:/]\n" "@devteam2 = rw\n" "[bigproj:/]\n" "@devteam1 = rw\n" "@devteam2 = rw\n" "trevor = rw\n" "# Give the doc people write access to all the docs folders\n" "[/trunk/doc]\n" "@docs = rw\n" "# Give trainees write access in the training repository only\n" "[TrainingRepos:/]\n" "@training = rw\n" "" msgstr "" "一个可能的例子: \n" "[groups]\n" "admin = john, kate\n" "devteam1 = john, rachel, sally\n" "devteam2 = kate, peter, mark\n" "docs = bob, jane, mike\n" "training = zak\n" "# Default access rule for ALL repositories\n" "# Everyone can read, admins can write, Dan German is excluded.\n" "[/]\n" "* = r\n" "@admin = rw\n" "dangerman =\n" "# Allow developers complete access to their project repos\n" "[proj1:/]\n" "@devteam1 = rw\n" "[proj2:/]\n" "@devteam2 = rw\n" "[bigproj:/]\n" "@devteam1 = rw\n" "@devteam2 = rw\n" "trevor = rw\n" "# Give the doc people write access to all the docs folders\n" "[/trunk/doc]\n" "@docs = rw\n" "# Give trainees write access in the training repository only\n" "[TrainingRepos:/]\n" "@training = rw\n" "" #. (para) msgid "" "Note that checking every path can be an expensive operation, particularly in " "the case of the revision log. The server checks every changed path in each " "revision and checks it for readability, which can be time-consuming on " "revisions which affect large numbers of files." msgstr "" "请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在" "每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。" #. (para) msgid "" "Authentication and authorization are separate processes. If a user wants to " "gain access to a repository path, she has to meet both, " "the usual authentication requirements and the authorization requirements of " "the access file." msgstr "" "认证和授权是不同的处理过程,如果用户希望获得对版本库的访问,他需要通过" "全部检查,即通常的认证需求和访问控制文件的授权需求。" #. (title) msgid "Authentication With a Windows Domain" msgstr "使用 Windows 域认证" #. (primary) msgid "Windows domain" msgstr "Windows 域" #. (primary) msgid "domaincontroller" msgstr "域控制器" #. (para) msgid "" "As you might have noticed you need to make a username/password entry in the " "passwd file for each user separately. And if (for " "security reasons) you want your users to periodically change their passwords " "you have to make the change manually." msgstr "" "你已经注意到了,你需要为每个用户在passwd文件中创建用户名/" "密码条目,如果(因为安全原因)他们希望周期性的修改他们的密码,你需要手动的做出修" "改。" #. (para) msgid "" "But there's a solution for that problem - at least if you're accessing the " "repository from inside a LAN with a windows domain controller: " "mod_auth_sspi!" msgstr "" "但是对于此问题有另一个解决方案 - 至少是你在使用域控制器的 LAN 中访问版本库" "时: mod_auth_sspi!" #. (primary) msgid "SSPI" msgstr "SSPI" #. (primary) msgid "NTLM" msgstr "NTLM" #. (para) msgid "" "The original SSPI module was offered by Syneapps including source code. But " "the development for it has been stopped. But don't despair, the community has " "picked it up and improved it. It has a new home on SourceForge." msgstr "" "最初的 SSPI 是由 Syneapps 提供的,包括源代码。但是它的开发已经终止。不过不要失" "望,社区重新拾起代码并进行了改进,它现在的新主页在SourceForge。" #. (para) msgid "" "Download the module which matches your apache version, then copy the file " "mod_auth_sspi.so into the Apache modules folder." msgstr "" "下载此匹配你的 Apache 版本的模块,将文件mod_auth_sspi.so" "复制到 Apache 的 modules 目录。" #. (para) msgid "" "Edit the Apache config file: add the line \n" "LoadModule sspi_auth_module modules/mod_auth_sspi.so\n" " to the LoadModule section. Make sure you insert " "this line before the line \n" "LoadModule auth_module modules/mod_auth.so\n" "" msgstr "" "编辑 Apache 的配置文件: 增加一行\n" "LoadModule sspi_auth_module modules/mod_auth_sspi.so\n" " 到 LoadModule 节。确认你在下行之前插入此行" "\n" "LoadModule auth_module modules/mod_auth.so\n" "" #. (para) msgid "" "To make the Subversion location use this type of authentication you have to " "change the line \n" "AuthType Basic\n" " to \n" "AuthType SSPI\n" " also you need to add \n" "SSPIAuth On\n" "SSPIAuthoritative On\n" "SSPIDomain <domaincontroller>\n" "SSPIOmitDomain on\n" "SSPIUsernameCase lower\n" "SSPIPerRequestAuth on\n" "SSPIOfferBasic On\n" " within the <Location /svn> block. If you " "don't have a domain controller, leave the name of the domain control as " "<domaincontroller>." msgstr "" "为了让 Subversion 领域使用此认证类型,你需要将\n" "AuthType Basic\n" " 修改为 \n" "AuthType SSPI\n" " 并且在 <Location /svn> 中增加 \n" "SSPIAuth On\n" "SSPIAuthoritative On\n" "SSPIDomain <domaincontroller>\n" "SSPIOmitDomain on\n" "SSPIUsernameCase lower\n" "SSPIPerRequestAuth on\n" "SSPIOfferBasic On\n" "如果你没有域控制器,可以将域控制器的名称置为 <" "domaincontroller> 。" #. (para) msgid "" "Note that if you are authenticating using SSPI, then you don't need the " "AuthUserFile line to define a password file any more. " "Apache authenticates your username and password against your windows domain " "instead. You will need to update the users list in your " "svnaccessfile to reference DOMAIN\\username as well." msgstr "" "请注意,当你使用 SSPI 认证时,没有必要再使用 AuthUserFile " "行定义密码文件,Apache 使用 Windows 域验证你的用户名和密码,你需要更新 " "svnaccessfile 中的用户列表来引用 DOMAIN" "\\username。" #. (para) msgid "" "The SSPI authentication is only enabled for SSL secured connections (https). " "If you're only using normal http connections to your server, it won't work." msgstr "" "只有使用 SSL 加密连接(https)时才可以启用 SSPI 认证。如果你只是用普通 http 协议" "连接到服务器,那么它不会工作。" #. (para) msgid "" "To enable SSL on your server, see the chapter: " msgstr "" "要使你的服务器启用 SSL,请看: " #. (para) msgid "" "Subversion AuthzSVNAccessFile files are case sensitive " "in regard to user names (JUser is different from " "juser)." msgstr "" "Subversion 的 AuthzSVNAccessFile 文件对用户名大小写敏感" "(JUserjuser 不同)。" #. (para) msgid "" "In Microsoft's world, Windows domains and user names are not case sensitive. " "Even so, some network administrators like to create user accounts in " "CamelCase (e.g. JUser)." msgstr "" "在微软的世界,Windows 域和用户名不是大小写敏感。即使如此,一些网络管理员还是喜" "欢创建首字母大写的用户帐号(例如 JUser)。" #. (para) msgid "" "This difference can bite you when using SSPI authentication as the windows " "domain and user names are passed to Subversion in the same case as the user " "types them in at the prompt. Internet Explorer often passes the username to " "Apache automatically using whatever case the account was created with." msgstr "" "使用SSPI的一个问题是用户名和密码是用户在提示输入时发送到Subversion的,而IE经常" "会不管你的帐户是如何建立的都会自动发送你的用户名。" #. (para) msgid "" "The end result is that you may need at least two entries in your " "AuthzSVNAccessFile for each user -- a lowercase entry and " "an entry in the same case that Internet Explorer passes to Apache. You will " "also need to train your users to also type in their credentials using lower " "case when accessing repositories via TortoiseSVN." msgstr "" "结果就是你必须为每个用户在 AuthzSVNAccessFile 中至少创建两" "个条目:一个小写的条目和一个与 IE 传递给 Apache 一样的条目,你也需要训练你的用" "户在通过 TortoiseSVN 输入访问版本库的凭证时使用小写字母。" #. (para) msgid "" "Apache's Error and Access logs are your best friend in deciphering problems " "such as these as they will help you determine the username string passed onto " "Subversion's AuthzSVNAccessFile module. You may need to " "experiment with the exact format of the user string in the " "svnaccessfile (e.g. DOMAIN\\user vs. " "DOMAIN//user) in order to get everything working." msgstr "" "Apache 的错误和访问日志是你最好的朋友,例如帮助你检测传递给 Subversion 的 " "AuthzSVNAccessFile 模块的用户名,你或许需要试验 svnaccessfile 中用户字符串的精" "确格式(例如 DOMAIN\\user 还是 DOMAIN//user)来使一切工作正常。" #. (title) msgid "Multiple Authentication Sources" msgstr "多重认证源" #. (primary) msgid "Multiple authentication" msgstr "多重认证" #. (para) msgid "" "It is also possible to have more than one authentication source for your " "Subversion repository. To do this, you need to make each authentication type " "non-authoritative, so that Apache will check multiple sources for a matching " "username/password." msgstr "" "也可以为Subversion使用不止一个的认证源,为此,你需要将每一种认证设置为non-" "authoritative,这样Apache会在多个源检查用户名/密码。" #. (para) msgid "" "A common scenario is to use both Windows domain authentication and a " "passwd file, so that you can provide SVN access to users " "who don't have a Windows domain login." msgstr "" "一个常见的场景就是同时使用Windows域和passwd文件认证,这样你" "可以为没有Windows域帐户的用户提供访问SVN的权限。" #. (para) #, fuzzy msgid "" "To enable both Windows domain and passwd file " "authentication, add the following entries within the <Location>" " block of your Apache config file: \n" "AuthBasicAuthoritative Off\n" "SSPIAuthoritative Off\n" "" msgstr "" "为了同时启用 Windows 域认证和 passwd 文件认证,在 Apache " "配置文件的 <Location> 块中添加如下条目: \n" "AuthAuthoritative Off\n" "SSPIAuthoritative Off\n" "" #. (para) #, fuzzy msgid "" "Here is an example of the full Apache configuration for combined Windows " "domain and passwd file authentication: \n" "<Location /svn>\n" " DAV svn\n" " SVNListParentPath on\n" " SVNParentPath D:\\SVN\n" "\n" " AuthName \"Subversion repositories\"\n" " AuthzSVNAccessFile svnaccessfile.txt\n" "\n" "# NT Domain Logins.\n" " AuthType SSPI\n" " SSPIAuth On\n" " SSPIAuthoritative Off\n" " SSPIDomain <domaincontroller>\n" " SSPIOfferBasic On\n" "\n" "# Htpasswd Logins.\n" " AuthType Basic\n" " AuthBasicAuthoritative Off\n" " AuthUserFile passwd\n" "\n" " Require valid-user\n" "</Location>\n" "" msgstr "" "下面是组合使用 Windows 域认证和 passwd 文件认证的完整配置: " "\n" "<Location /svn>\n" "DAV svn\n" "SVNListParentPath on\n" "SVNParentPath D:\\SVN\n" "\n" "AuthName \"Subversion repositories\"\n" "AuthzSVNAccessFile svnaccessfile.txt\n" "\n" "# NT Domain Logins.\n" "AuthType SSPI\n" "SSPIAuth On\n" "SSPIAuthoritative Off\n" "SSPIDomain <domaincontroller>\n" "SSPIOfferBasic On\n" "\n" "# Htpasswd Logins.\n" "AuthType Basic\n" "AuthAuthoritative Off\n" "AuthUserFile passwd\n" "\n" "Require valid-user\n" "</Location>\n" "" #. (title) msgid "Securing the server with SSL" msgstr "用 SSL 使服务器更安全" #. (primary) msgid "SSL" msgstr "SSL" #. (para) msgid "" "Even though Apache 2.2.x has OpenSSL support, it is not activated by default. " "You need to activate this manually." msgstr "虽然 Apache 2.2.x 支持 OpenSSL,它默认却没有激活。你可以手动激活它。" #. (para) msgid "" "In the apache config file, uncomment the lines: \n" "#LoadModule ssl_module modules/mod_ssl.so\n" " and at the bottom \n" "#Include conf/extra/httpd-ssl.conf\n" " then change the line (on one line) \n" "SSLMutex \"file:C:/Program Files/Apache Software Foundation/\\\n" "Apache2.2/logs/ssl_mutex\"\n" " to \n" "SSLMutex default\n" "" msgstr "" "在 apache 配置文件中,取消这些行的注释: \n" "#LoadModule ssl_module modules/mod_ssl.so\n" "和最后面的\n" "#Include conf/extra/httpd-ssl.conf\n" "接着将这一行(在配置文件中这是一行)\n" "SSLMutex \"file:C:/Program Files/Apache Software Foundation/\\\n" "Apache2.2/logs/ssl_mutex\"\n" "改为\n" "SSLMutex default\n" "" #. (para) #, fuzzy msgid "" "Next you need to create an SSL certificate. To do that open a command prompt " "(DOS-Box) and change to the Apache folder (e.g. C:\\program files" "\\apache group\\apache2) and type the following command: \n" "bin\\openssl req -config conf\\openssl.cnf -new -out my-server.csr\n" " You will be asked for a passphrase. Please don't use simple words " "but whole sentences, e.g. a part of a poem. The longer the phrase the better. " "Also you have to enter the URL of your server. All other questions are " "optional but we recommend you fill those in too." msgstr "" "然后你需要创建一个 SSL 证书。为此打开一个命令行窗口,进入 Apache 目录(例如 " "C:\\program files\\apache group\\apache2),然后输入命令: " "\n" "bin\\openssl req -config bin\\openssl.cnf -new -out my-server.csr\n" " 你会被询问密句。请不要使用简单的单词,而是使用整段话,例如一段诗,越" "长越好。你也需要输入服务器的 URL,其他所有问题都是可选的,但是我们建议你输入这" "些信息。" #. (para) #, fuzzy msgid "" "Normally the privkey.pem file is created automatically, " "but if it isn't you need to type this command to generate it: \n" "bin\\openssl genrsa -out conf\\privkey.pem 2048\n" "" msgstr "" "通常会自动产生privkey.pem文件,但是如果没有,请输入下面的" "命令生成它: \n" "bin\\openssl genrsa -out privkey.pem 2048\n" "" #. (para) #, fuzzy msgid "" "Next type the commands \n" "bin\\openssl rsa -in conf\\privkey.pem -out conf\\server.key\n" " and (on one line) \n" "bin\\openssl req -new -key conf\\server.key -out conf\\server.csr \\\n" "-config conf\\openssl.cnf\n" " and then (on one line) \n" "bin\\openssl x509 -in conf\\server.csr -out conf\\server.crt\n" " -req -signkey conf\\server.key -days 4000\n" " This will create a certificate which will expire in 4000 days. And " "finally enter (on one line): \n" "bin\\openssl x509 -in conf\\server.cert -out conf\\server.der.crt\n" " -outform DER\n" " These commands created some files in the Apache conf folder (server.der.crt, server.csr, server.key, .rnd, " "privkey.pem, server.cert)." msgstr "" "然后输入这个命令\n" "bin\\openssl rsa -in privkey.pem -out my-server.key\n" "并且输入(在同一行)\n" "bin\\openssl x509 -in my-server.csr -out my-server.cert\n" " -req -signkey my-server.key -days 4000\n" "这样会创建一个在4000天里过期的证书,最后输入: \n" "bin\\openssl x509 -in my-server.cert -out my-server.der.crt -outform DER\n" "这些命令在Apache目录(my-server.der.crt、" "my-server.csrmy-server.key、" ".rndprivkey.pemmy-" "server.cert)里创建了一些文件,复制这些文件到目录conf/" "ssl(例如C:\\program files\\apache group\\apache2\\conf" "\\ssl)-如果这个目录不存在,你需要首先创建一个。" #. (para) msgid "Restart the Apache service." msgstr "重启 apache 服务。" #. (para) msgid "" "Point your browser to https://servername/svn/" "project ..." msgstr "" "将你的浏览器指向https://servername/svn/project ..." #. (title) msgid "SSL and Internet Explorer" msgstr "SSL 和 Internet Explorer" #. (para) msgid "" "If you're securing your server with SSL and use authentication against a " "windows domain you will encounter that browsing the repository with the " "Internet Explorer doesn't work anymore. Don't worry - this is only the " "Internet Explorer not able to authenticate. Other browsers don't have that " "problem and TortoiseSVN and any other Subversion client are still able to " "authenticate." msgstr "" "如果你使用SSL保护你的服务器,并使用windows域来进行认证,你会发现不能使用IE浏览" "版本库了,不需要担心-那只是因为IE没有经过认证,其他浏览器没有这个问题," "TortoiseSVN和其他Subversion客户端仍然可以得到认证。" #. (para) msgid "" "define a separate <Location /path> directive in the " "Apache config file, and add the SSPIBasicPreferred On. " "This will allow IE to authenticate again, but other browsers and Subversion " "won't be able to authenticate against that location." msgstr "" "在 Apache 的配置文件定义一个单独的 <Location /path> " "指示,增加 SSPIBasicPreferred On。这将使 IE 能够认证,但是" "其他浏览器和 Subversion 不能对这个领域认证。" #. (para) msgid "" "Offer browsing with unencrypted authentication (without SSL) too. Strangely " "IE doesn't have any problems with authenticating if the connection is not " "secured with SSL." msgstr "" "也提供未加密(没有SSL)认证的浏览,奇怪的IE在没有使用SSL的认证时没有任何问题。" #. (para) msgid "" "In the SSL \"standard\" setup there's often the following statement in " "Apache's virtual SSL host: \n" "SetEnvIf User-Agent \".*MSIE.*\" \\\n" " nokeepalive ssl-unclean-shutdown \\\n" " downgrade-1.0 force-response-1.0\n" " There are (were?) good reasons for this configuration, see http://" "www.modssl.org/docs/2.8/ssl_faq.html#ToC49 But if you " "want NTLM authentication you have to use keepalive. If You " "uncomment the whole SetEnvIf you should be able to " "authenticate IE with windows authentication over SSL against the Apache on " "Win32 with included mod_auth_sspi." msgstr "" "在 SSL 的“标准”配置中,通常在 apache 的虚拟 SSL 主机内有下面的内容: \n" "SetEnvIf User-Agent \".*MSIE.*\" \\\n" " nokeepalive ssl-unclean-shutdown \\\n" " downgrade-1.0 force-response-1.0\n" "这种设置的充足理由参见 http://www.modssl.org/docs/2.8/ssl_faq." "html#ToC49。但是如果你希望使用 NTLM 认证,就必须使用 " "keepalive。如果启用全部 SetEnvIf,你就可" "以使 IE 用 Windows 认证访问运行在 Win32 上加载了 mod_auth_sspi 模块的 Apache。" #. (para) msgid "" "If you still want to use IE to browse the repository you can either: " "" msgstr "如果你一直希望使用IE浏览你的版本库,你可以选择: " #. (title) msgid "Forcing SSL access" msgstr "强制 SSL 访问" #. (para) msgid "" "When you've set up SSL to make your repository more secure, you might want to " "disable the normal access via non-SSL (http) and only allow https access. To " "do this, you have to add another directive to the Subversion <" "Location> block: SSLRequireSSL." msgstr "" "当你设置了 SSL 让你的版本库更安全,你一定希望关闭普通的非 SSL (http) 访问。为" "此,你需要在 Subversion 的 <Location> 增加指示: " "SSLRequireSSL。" #. (para) #, fuzzy msgid "" "An example <Location> block would look like this: " "\n" "<Location /svn>\n" " DAV svn\n" " SVNParentPath D:\\SVN\n" " SSLRequireSSL\n" " AuthType Basic\n" " AuthName \"Subversion repositories\"\n" " AuthUserFile passwd\n" " #AuthzSVNAccessFile svnaccessfile\n" " Require valid-user\n" "</Location>\n" "" msgstr "" "这是一个 <Location> 实例: \n" "<Location /svn>\n" "DAV svn\n" "SVNParentPath D:\\SVN\n" "SSLRequireSSL\n" "AuthType Basic\n" "AuthName \"Subversion repositories\"\n" "AuthUserFile passwd\n" "#AuthzSVNAccessFile svnaccessfile\n" "Require valid-user\n" "</Location>\n" "" #. (title) msgid "Using client certificates with virtual SSL hosts" msgstr "在虚拟 SSL 主机中使用客户端证书" #. (para) msgid "Sent to the TortoiseSVN mailing list by Nigel Green. Thanks!" msgstr "由 Nigel Green 发送到 TortoiseSVN 邮件列表。非常感谢!" #. (para) msgid "" "In some server configurations you may need to setup a single server " "containing 2 virtual SSL hosts: The first one for public web access, with no " "requirement for a client certificate. The second one to be secure with a " "required client certificate, running a Subversion server." msgstr "" "在某些情况下你需由要 1 台服务器掌管 2 个虚拟的 SSL 主机: 第 1 个用于公共 web " "浏览,不需要客户端证书。第 2 个必需通过客户端证书来保证安全,运行 Subversion " "服务器。" #. (para) msgid "" "Adding an SSLVerifyClient Optional directive to the " "per-server section of the Apache configuration (i.e. " "outside of any VirtualHost and Directory blocks) forces Apache to request a client Certificate in the initial " "SSL handshake. Due to a bug in mod_ssl it is essential " "that the certificate is requested at this point as it does not work if the " "SSL connection is re-negotiated." msgstr "" "在 Apache 配置文件的 per-server 部分中添加 " "SSLVerifyClient Optional 指令(例如,在任何 " "VirtualHostDirectory 块之外)强制 " "Apache 在开始 SSL 连接握手时索取客户端证书。由于 mod_ssl 中" "的一个错误,在这个时候索取客户端证书是非常有必要的,因为当 SSL 连接重新协商" "时,它就不会生效了。" #. (para) msgid "" "The solution is to add the following directive to the virtual host directory " "that you want to lock down for Subversion: \n" "SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n" " This directive grants access to the directory only if a client " "certificate was received and verified successfully." msgstr "" "解决方案就是在 Subversion 虚拟主机的目录配置部分添加下面的指令: \n" "SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n" "这个指令确认只有在收到客户端证书并成功验证后才能有权读取目录。" #. (para) msgid "" "To summarise, the relevant lines of the Apache configuration are: \n" "SSLVerifyClient Optional\n" "\n" "### Virtual host configuration for the PUBLIC host \n" "### (not requiring a certificate)\n" "\n" "<VirtualHost 127.0.0.1:443>\n" " <Directory \"pathtopublicfileroot\">\n" " </Directory>\n" "</VirtualHost>\n" "\n" "### Virtual host configuration for SUBVERSION \n" "### (requiring a client certificate)\n" "<VirtualHost 127.0.0.1:443>\n" " <Directory \"subversion host root path\">\n" " SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n" " </Directory>\n" "\n" " <Location /svn>\n" " DAV svn\n" " SVNParentPath /pathtorepository\n" " </Location>\n" "</VirtualHost>\n" "" msgstr "" "总之,Apache 配置文件中的相关内容就是这样的: \n" "SSLVerifyClient Optional\n" "\n" "### 公共访问虚拟主机 \n" "### (不需要客户端证书)\n" "\n" "<VirtualHost 127.0.0.1:443>\n" " <Directory \"pathtopublicfileroot\">\n" " </Directory>\n" "</VirtualHost>\n" "\n" "### SUBVERSION 虚拟主机\n" "### (需要客户端证书)\n" "<VirtualHost 127.0.0.1:443>\n" " <Directory \"subversion host root path\">\n" " SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n" " </Directory>\n" "\n" " <Location /svn>\n" " DAV svn\n" " SVNParentPath /pathtorepository\n" " </Location>\n" "</VirtualHost>\n" "" #. (title) msgid "Daily Use Guide" msgstr "日常使用指南" #. (para) msgid "" "This document describes day to day usage of the TortoiseSVN client. It is " "not an introduction to version control systems, and " "not an introduction to Subversion (SVN). It is more like " "a place you may turn to when you know approximately what you want to do, but " "don't quite remember how to do it." msgstr "" "本文目的在与描述TortoiseSVN客户端的日常使用。不是一个版本" "控制系统指南,也不是Subversion (SVN)的指南。本文档的价值" "在于,当你知道大概要做什么,却又记不起应该怎么做的时候,可以有个参考的地方。" #. (para) msgid "" "If you need an introduction to version control with Subversion, then we " "recommend you read the fantastic book: Version Control with Subversion." msgstr "" "如果你需要了解使用Subversion进行版本控制的指南,我们建立你阅读以下这本梦幻之" "书: 《使用 Subversion " "进行版本管理》." #. (para) msgid "" "This document is also a work in progress, just as TortoiseSVN and Subversion " "are. If you find any mistakes, please report them to the mailing list so we " "can update the documentation. Some of the screenshots in the Daily Use Guide " "(DUG) might not reflect the current state of the software. Please forgive us. " "We're working on TortoiseSVN in our free time." msgstr "" "本文档与TortoiseSVN和Subversion一样,也是处于“正在开发”的状态。如果你找到了错" "误之处,请向邮件列表报告,这样我们就可以更新它。日常使用指南(DUG)中的一些屏幕" "截图也许不符合当前软件中的情况。请您原谅我们。毕竟我们只是用业余的时间在制作" "TortoiseSVN 。" #. (para) msgid "You should have installed TortoiseSVN already." msgstr "你应该已经安装了TortoiseSVN。" #. (para) msgid "You should be familiar with version control systems." msgstr "你应该熟悉版本控制系统。" #. (para) msgid "You should know the basics of Subversion." msgstr "你应该知道Subversion的基础。" #. (para) msgid "" "You should have set up a server and/or have access to a Subversion repository." msgstr "你应该已经建立了一个服务器并且可以访问Subversion库。" #. (para) msgid "In order to get the most out of the Daily Use Guide: " msgstr "为了获得比每日用户指南更多的信息: " #. (title) msgid "Getting Started" msgstr "开始" #. (title) #. (title) #. (title) msgid "Icon Overlays" msgstr "图标重载" #. (title) #. (title) msgid "Explorer showing icon overlays" msgstr "显示重载图标的资源管理器" #. (para) msgid "" " One of the most visible features of TortoiseSVN is the icon " "overlays which appear on files in your working copy. These show you at a " "glance which of your files have been modified. Refer to to find out what the different overlays represent." msgstr "" " TortoiseSVN 最明显的特性之一就是图标重载,重载的图标显示在你" "的工作副本文件上。你一眼就可以看到文件被修改过了。参考 查阅不同的重载图标含义。" #. (title) msgid "Context Menus" msgstr "右键菜单" #. (primary) msgid "context menu" msgstr "右键菜单" #. (primary) msgid "right-click" msgstr "右击" #. (title) msgid "Context menu for a directory under version control" msgstr "版本控制下一个目录的右键菜单" #. (para) msgid "" " All TortoiseSVN commands are invoked from the context menu " "of the windows explorer. Most are directly visible, when you right " "click on a file or folder. The commands that are available depend on " "whether the file or folder or its parent folder is under version control or " "not. You can also see the TortoiseSVN menu as part of the Explorer file menu." msgstr "" " 所有的TortoiseSVN命令都是通过windows资源管理器的右键菜单执" "行。右键点击一个文件或者文件夹,大多数菜单项都能够直接显示。" "一个命令是否显示取决于这个文件或文件夹或者它们的父文件夹是否受版本控制,你也可" "以将TortoiseSVN的菜单作为资源管理器菜单的一部分。" #. (para) msgid "" "Some commands which are very rarely used are only available in the extended " "context menu. To bring up the extended context menu, hold down the " "Shift key when you right-click." msgstr "" "有些命令很少被用到,只有在扩展右键菜单中才能显示。要显示扩展右键菜单,请在" "单击右键时按住 Shift 键。" #. (title) msgid "Explorer file menu for a shortcut in a versioned folder" msgstr "在一个版本控制的文件夹下资源管理器文件菜单中的快捷方式。" #. (para) msgid "" "In some cases you may see several TortoiseSVN entries. This is not a bug! " " This example is for an unversioned shortcut within a " "versioned folder, and in the Explorer file menu there are three entries for TortoiseSVN. One is for the folder, one for the " "shortcut itself, and the third for the object the shortcut is pointing to. To " "help you distinguish between them, the icons have an indicator in the lower " "right corner to show whether the menu entry is for a file, a folder, a " "shortcut or for multiple selected items." msgstr "" "在某些情况下,你可能看到多个TortoiseSVN条目。这不是BUG!本示例" "是在一个受控文件夹下的某个未受控的快捷方式, 在资源管理器的文件菜单下有" "三个TortoiseSVN条目。一个是受控文件夹本身的,一个是快捷方" "式本身的,第三个是快捷方式所指向的对象。为了帮助你区分它们,菜单条目的图标的右" "下角有标志,表明是文件、快捷方式、文件夹或是选中了多项。" #. (para) msgid "" "If you are using Windows 2000 you will find that the context menus are shown " "as plain text, without the menu icons shown above. We are aware that this was " "working in previous versions, but Microsoft has changed the way its icon " "handlers work for Vista, requiring us to use a different display method which " "unfortunately does not work on Windows 2000." msgstr "" "Windows 2000 的用户将会发现右键菜单仅显示文字,没有上图所示的菜单图标。我们知" "道这是因为在旧版下使用的缘故,由于微软改变了 Vista 中图标句柄工作方式,我们只" "好使用不同的方式,很遗憾,这种方式不能在 Windows 2000 下工作。" #. (title) #. (title) msgid "Drag and Drop" msgstr "拖放" #. (primary) msgid "drag handler" msgstr "拖拽句柄" #. (primary) msgid "drag-n-drop" msgstr "拖放" #. (primary) msgid "right drag" msgstr "右键拖动" #. (title) #. (title) msgid "Right drag menu for a directory under version control" msgstr "版本控制下的一个目录的右键拖拽菜单" #. (para) msgid "" " Other commands are available as drag handlers, when you " "right drag files or folders to a new location inside working " "copies or when you right drag a non-versioned file or folder " "into a directory which is under version control." msgstr "" " 在工作副本里右键拖拽文件或目录到新的位置,或" "者右键拖拽一个非版本控制的文件或文件夹到一个版本控制目录下的" "时候,右键菜单还能够出现其他的命令。" #. (title) msgid "Common Shortcuts" msgstr "常用快捷方式" #. (term) msgid "F1" msgstr "F1" #. (para) msgid "Help, of course." msgstr "当然是帮助。" #. (term) msgid "F5" msgstr "F5" #. (para) msgid "" "Refresh the current view. This is perhaps the single most useful one-key " "command. For example ... In Explorer this will refresh the icon overlays on " "your working copy. In the commit dialog it will re-scan the working copy to " "see what may need to be committed. In the Revision Log dialog it will contact " "the repository again to check for more recent changes." msgstr "" "刷新当前视图。这也许是单键命令中唯一一个最常用的了。比如... 在资源浏览器中,这" "个键可以刷新工作副本中的图标重载。在提交对话框中,它可以重新扫描查找哪些是需要" "提交的。在版本日志对话框中,可以重新联系版本库以检查更多的最近修改情况。" #. (term) msgid "Ctrl-A" msgstr "Ctrl-A" #. (para) msgid "" "Select all. This can be used if you get an error message and want to copy and " "paste into an email. Use Ctrl-A to select the error message and then ..." msgstr "" "全选。可用于在得到一个错误消息并想要复制粘贴到电子邮件时。使用Ctrl-A to选择错" "误错误,然后..." #. (term) msgid "Ctrl-C" msgstr "Ctrl-C" #. (para) msgid "... Copy the selected text." msgstr "... 复制选中的文本。" #. (para) msgid "" "Some common operations have well-known Windows shortcuts, but do not appear " "on buttons or in menus. If you can't work out how to do something obvious, " "like refreshing a view, check here. " msgstr "" "一些常见的操作与 Windows 的快捷键是一样的,但没有出现在按钮或是菜单中。如果你" "找不到一些显而易见的操作,比如刷新视图,请参考以下内容。 " #. (primary) msgid "authentication" msgstr "认证" #. (title) msgid "Authentication Dialog" msgstr "认证对话框" #. (para) msgid "" "svn.simple contains credentials for basic authentication " "(username/password)." msgstr "" "svn.simple 里包含了基本认证方式所需要的认证信息(用户名/密" "码)。" #. (para) msgid "svn.ssl.server contains SSL server certificates." msgstr "svn.ssl.server 里包含了SSL服务器证书。" #. (para) msgid "" "svn.username contains credentials for username-only " "authentication (no password needed)." msgstr "" "svn.username 里包含了用户名认证的认证信息(不需要提供密" "码)。" #. (para) msgid "" "If the repository that you are trying to access is password protected, an " "authentication Dialog will show up. Enter your username and " "password. The checkbox will make TortoiseSVN store the credentials in " "Subversion's default directory: %APPDATA%\\Subversion\\auth in three subdirectories: " msgstr "" "如果连接的版本库需要密码,就会显示认证对话框。 输入你的用户名" "和密码。复选框能让 TortoiseSVN 在 Subversion 的缺省目录: %APPDATA%" "\\Subversion\\auth 的三个子目录内保存认证信息:" #. (para) msgid "" "If you want to clear the authentication cache for all servers, you can do so " "from the Saved Data page of TortoiseSVN's settings " "dialog. That button will clear all cached authentication data from the " "Subversion auth directories, as well as any " "authentication data stored in the registry by earlier versions of " "TortoiseSVN. Refer to ." msgstr "" "如果想要清除所有服务器的认证缓存,可以通过 TortoiseSVN 设置对话框的" "已保存数据页来实现。那个按钮能够清除 Subversion 的 auth 目录中缓存的所有认证数据,以及老版本的 TortoiseSVN 存储在注册表里的" "认证数据。请参考 。" #. (para) msgid "" "Some people like to have the authentication data deleted when they log off " "Windows, or on shutdown. The way to do that is to use a shutdown script to " "delete the %APPDATA%\\Subversion\\auth directory, e.g. " "\n" "@echo off\n" "rmdir /s /q \"%APPDATA%\\Subversion\\auth\"\n" " You can find a description of how to install such scripts at windows-help-central.com." msgstr "" "有些人喜欢在注销 Windows 时或关机时删除认证数据。使用关机脚本删除目录 " "%APPDATA%\\Subversion\\auth 可以达到此目的,例如: " "\n" "@echo off\n" "rmdir /s /q \"%APPDATA%\\Subversion\\auth\"\n" " 你可以从 windows-help-central.com 找到如何安装此脚本的详细描述。" #. (para) msgid "" "For more information on how to set up your server for authentication and " "access control, refer to " msgstr "" "关于如何设置服务器的认证和权限的更多信息,请参考" #. (title) msgid "Maximizing Windows" msgstr "最大化窗口" #. (primary) msgid "maximize" msgstr "最大化" #. (para) msgid "" "Many of TortoiseSVN's dialogs have a lot of information to display, but it is " "often useful to maximize only the height, or only the width, rather than " "maximizing to fill the screen. As a convenience, there are shortcuts for this " "on the Maximize button. Use the middle mouse button to maximize vertically, and right mouse to " "maximize horizontally." msgstr "" "大多数 TortoiseSVN 的对话框显示很多信息,但是经常只有最大化高度或者宽度有用," "而不是全部最大化,覆盖整个屏幕。为了方便,在 最大化 按钮" "有快捷方式做这些工作。使用鼠标中键最大化高度,右键最大化宽度。" #. (title) msgid "Importing Data Into A Repository" msgstr "导入数据到版本库" #. (primary) msgid "import" msgstr "导入" #. (primary) msgid "add files to repository" msgstr "向版本库增加文件" #. (title) #. (entry) #. (title) #. (glossterm) msgid "Import" msgstr "导入" #. (primary) msgid "temporary files" msgstr "临时文件" #. (para) msgid "" "If you are importing into an existing repository which already contains some " "projects, then the repository structure will already have been decided. If " "are importing data into a new repository then it is worth taking the time to " "think about how it will be organised. Read for further advice." msgstr "" "如果你要将数据导入到已经包括一些项目的版本库中,那么版本库的结构应该已经确定" "了。如果你要将数据导入到一个新的版本库中,那么应该花点时间确定版本库的组织结" "构。阅读 以获得更多的建议。" #. (para) msgid "" "There is no way to select files and folders to include, aside from using the " "global ignore settings." msgstr "不能选择包括哪些文件或文件夹,除非使用全局忽略设置。" #. (para) msgid "" "The folder imported does not become a working copy. You have to do a checkout " "to copy the files back from the server." msgstr "导入的文件夹不能变成工作副本。你必须通过签出操作从服务器拿回文件。" #. (para) msgid "It is easy to import to the wrong folder level in the repository." msgstr "很容易导入到版本库中错误的文件夹层次。" #. (para) msgid "" "This section describes the Subversion import command, which was designed for " "importing a directory hierarchy into the repository in one shot. Although it " "does the job, it has several shortcomings: For these reasons " "we recommend that you do not use the import command at all but rather follow " "the two-step method described in . But since you are here, this is how the basic import works ..." msgstr "" "这一节介绍 Subversion 的导入(import)命令,它被设计成只需要 1 步就可以将目录结" "构导入到版本库中。尽管它可以使用,但是它有一些短处: 因此,我" "们推荐你根本不要使用导入命令,而是使用这里介绍的需要 2 步的操作方法: 。既然你已经阅读到这里了,下面就介绍基础" "的导入操作..." #. (para) msgid "" "Remove all files which are not needed to build the project (temporary files, " "files which are generated by a compiler e.g. *.obj, compiled binaries, ...)" msgstr "" "删除所有构建工程不需要的文件(临时文件,编译器产生的文件,例如 *.obj,生成的二" "进制文件,...)" #. (para) msgid "" "Organize the files in folders and sub-folders. Although it is possible to " "rename/move files later it is highly recommended to get your project's " "structure straight before importing!" msgstr "" "组织目录和子目录内的文件。尽管以后可以改名/删除文件,我们还是建议你在导入之前" "使你的项目结构组织良好!" #. (para) msgid "" "Before you import your project into a repository you should: " msgstr "在将你的项目导入到版本库之前,你应该: " #. (title) msgid "The Import dialog" msgstr "导入对话框" #. (para) msgid "" "Now select the top-level folder of your project directory structure in the " "windows explorer and right click to open the context menu. " "Select the command TortoiseSVNImport... which brings up a " "dialog box: " msgstr "" "现在进入资源管理器,选择你的项目的顶层目录,右击打开上下文菜" "单。选择命令TortoiseSVN导入 ...,它会弹出一个对话框: " #. (para) msgid "" "In this dialog you have to enter the URL of the repository location where you " "want to import your project. It is very important to realise that the local " "folder you are importing does not itself appear in the repository, only its " "content. For example if you have a structure: \n" "C:\\Projects\\Widget\\source\n" "C:\\Projects\\Widget\\doc\n" "C:\\Projects\\Widget\\images\n" " and you import C:\\Projects\\Widget into " "http://mydomain.com/svn/trunk then you " "may be surprised to find that your subdirectories go straight into " "trunk rather than being in a Widget " "subdirectory. You need to specify the subdirectory as part of the URL, " "http://mydomain.com/svn/trunk/Widget-X. Note that the import command will automatically create " "subdirectories within the repository if they do not exist." msgstr "" "在这个对话框中,需要输入版本库所在的 URL,你的项目将会导入到这里。非常重要的事" "项,你必须了解: 你要导入的本地文件夹自身不会出现在版本库中,版本库中只有文件夹" "中的内容。例如,你有这样的文件夹结构: \n" "C:\\Projects\\Widget\\source\n" "C:\\Projects\\Widget\\doc\n" "C:\\Projects\\Widget\\images\n" "你将 C:\\Projects\\Widget 导入到 http://mydomain.com/svn/trunk,然后你会惊奇的发现: " "你的子目录径直地进入 trunk 中,而不是在 Widget 子目录中。你需要将子目录作为 URL 的一部分明确的指出来,http://mydomain.com/svn/trunk/Widget-X。注意,如果" "版本库中不存在指定的子目录,导入命令将会自动创建它们。" #. (para) msgid "The import message is used as a log message." msgstr "这个输入信息将用作提交日志。" #. (para) msgid "" "By default, files and folders which match the global-ignore patterns are " "not imported. To override this behaviour you can use the " "Include ignored files checkbox. Refer to for more information on setting a global ignore " "pattern." msgstr "" "默认情况下,匹配全局忽略模式的文件和文件夹不会被导入。你" "可以使用包含忽略文件检验栏来禁止此行为。参考以获得关于全局忽略模式的更多信息。" #. (para) msgid "" "As soon as you press OK TortoiseSVN imports the " "complete directory tree including all files into the repository. The project " "is now stored in the repository under version control. Please note that the " "folder you imported is NOT under version control! To get " "a version-controlled working copy you need to do a " "Checkout of the version you just imported. Or read on to find out how to " "import a folder in place." msgstr "" "当你点击确认时,TortoiseSVN 会导入包含所有文件的完整目" "录树到版本库。现在这个工程就存贮在版本库,被版本控制。请注意,你导入的文件夹" "没有被版本控制!你需要检出刚才导入的版本,以便获得受版本" "控制的工作副本。或者继续阅读,找到如何导入文件夹到合适" "的位置。" #. (title) msgid "Import in Place" msgstr "导入适当的位置" #. (primary) msgid "import in place" msgstr "导入适当的位置" #. (para) msgid "" "Use the repository browser to create a new project folder directly in the " "repository." msgstr "使用版本库浏览器直接在版本库中创建项目文件夹。" #. (para) msgid "" "Checkout the new folder over the top of the folder you want to import. You " "will get a warning that the local folder is not empty. Now you have a " "versioned top level folder with unversioned content." msgstr "" "在你要导入的文件夹检出新目录。你会得到一个本地目录为空的警告。现在你有一个版本" "控制的顶级目录,含有未版本控制的内容。" #. (para) msgid "" "Use TortoiseSVNAdd... on this versioned folder to add some or all of the " "content. You can add and remove files, set svn:ignore " "properties on folders and make any other changes you need to." msgstr "" "在此受版本控制的文件夹上使用TortoiseSVN增加...增加部分或全部内容。你" "可以增加或删除文件,在文件夹上设置svn:ignore属性,或者你需" "要的其它修改。" #. (para) msgid "" "Commit the top level folder, and you have a new versioned tree, and a local " "working copy, created from your existing folder." msgstr "提交顶级目录,你有一个新的版本树,一份从你已有目录创建的本地工作副本。" #. (para) msgid "" "Assuming you already have a repository, and you want to add a new folder " "structure to it, just follow these steps: " msgstr "" "假定你已经有个版本库,你想给它增加一个新目录结构,只需以下步骤: " #. (title) msgid "Special Files" msgstr "专用文件" #. (primary) msgid "special files" msgstr "专用文件" #. (para) msgid "" "Sometimes you need to have a file under version control which contains user " "specific data. That means you have a file which every developer/user needs to " "modify to suit his/her local setup. But versioning such a file is difficult " "because every user would commit his/her changes every time to the repository." msgstr "" "有时候你需要版本控制一个包含用户专用的数据。它意味着你有一个文件,每个开发者/" "用户都需要修改,一边满足他/她的本地配置。但是版本控制这样的文件是困难的,因为" "每个用户可能都要提交他/她的修改。" #. (para) msgid "" "In such cases we suggest to use template files. You " "create a file which contains all the data your developers will need, add that " "file to version control and let the developers check this file out. Then, " "each developer has to make a copy of that file and " "rename that copy. After that, modifying the copy is not a problem anymore." msgstr "" "在这种情况下,我们建议使用模版文件。创建一个包含所有开发" "者需要的数据的文件,增加到版本库中,让开发者检出。然后,每个开发者创" "建一个副本,改名此文件。于是,修改这个文件不再是问题。 " #. (para) msgid "" "As an example, you can have a look at TortoiseSVN's build script. It calls a " "file named TortoiseVars.bat which doesn't exist in the " "repository. Only the file TortoiseVars.tmpl. " "TortoiseVars.tmpl is the template file which every " "developer has to create a copy from and rename that file to " "TortoiseVars.bat. Inside that file, we added comments so " "that the users will see which lines they have to edit and change according to " "their local setup to get it working." msgstr "" "作为例子,你可以看看TortoiseSVN的构建脚本。它调用一个TortoiseVars." "bat文件,它并不在版本库中。 只有TortoiseVars.tmpl在版本库中。TortoiseVars.tmpl是一个模版文件,每" "个开发者都需要创建一个副本,改名为TortoiseVars.bat。在这" "个文件中,我们增加了注释,所以用户知道他们需要编辑那些行,以便适应他们的本地配" "置,使其能工作。" #. (para) msgid "" "So as not to disturb the users, we also added the file TortoiseVars." "bat to the ignore list of its parent folder, i.e. we've set the " "Subversion property svn:ignore to include that filename. " "That way it won't show up as unversioned on every commit." msgstr "" "于是为了不干扰用户,我们也将TortoiseVars.bat增加到它的父" "目录的忽略列表,也就是,我们设置了Subversion属性svn:ignore" "包含这个文件名称。这样,每次提交时它都不会作为没有版本控制的文件出现。" #. (title) msgid "Checking Out A Working Copy" msgstr "检出工作副本" #. (primary) msgid "checkout" msgstr "检出" #. (primary) msgid "create working copy" msgstr "创建工作副本" #. (para) msgid "" "To obtain a working copy you need to do a checkout " "from a repository." msgstr "" "为了得到一个工作副本,需要进行从版本库检出的操作。" #. (title) msgid "The Checkout dialog" msgstr "检出对话框" #. (para) msgid "" "Select a directory in windows explorer where you want to place your working " "copy. Right click to pop up the context menu and select the " "command TortoiseSVNCheckout..., which brings up the following dialog box: " " If you enter a folder name that does not yet exist, then a " "directory with that name is created." msgstr "" "在Windows资源管理器里选择一个存放工作副本的目录。右键点击弹出" "右键菜单,选择TortoiseSVN检出…命令。然后就会看到下面的对话框: 如果" "输入一个并不存在的目录名,那么这个名字的目录就会被创建出来。" #. (title) msgid "Checkout Depth" msgstr "检出深度" #. (term) msgid "Fully recursive" msgstr "全递归" #. (para) msgid "Checkout the entire tree, including all child folders and sub-folders." msgstr "检出完整的目录树,包含所有的文件或子目录。" #. (term) msgid "Immediate children, including folders" msgstr "直接节点,包含目录。" #. (para) msgid "" "Checkout the specified directory, including all files and child folders, but " "do not populate the child folders." msgstr "检出目录,包含其中的文件或子目录,但是不递归展开子目录。" #. (term) msgid "Only file children" msgstr "文件子节电" #. (para) msgid "" "Checkout the specified directory, including all files but do not checkout any " "child folders." msgstr "检出指定目录,包含所有文件,但是不检出任何子目录。" #. (term) msgid "Only this item" msgstr "仅此项。" #. (para) msgid "" "Checkout the directory only. Do not populate it with files or child folders." msgstr "只检出目录。不包含其中的文件或子目录。" #. (term) #. (term) #. (listitem) msgid "Working copy" msgstr "工作副本" #. (para) msgid "" "Retain the depth specified in the working copy. This option is not used in " "the checkout dialog, but it is the default in all other dialogs which have a " "depth setting." msgstr "" "保持工作副本指定的深度。此选项不用于检出对话框,但它是其它所有含有深度配置对话" "框的默认配置。" #. (term) msgid "Exclude" msgstr "排除" #. (para) msgid "" "Used to reduce working copy depth after a folder has already been populated. " "This option is only available in the Update to revision " "dialog." msgstr "" "对于已经创建好的工作副本,可以使用此选项来缩减文件夹的深度。这个选项只在" "更新至版本对话框中可用。" #. (para) msgid "" "You can choose the depth you want to checkout, which " "allows you to specify the depth of recursion into child folders. If you want " "just a few sections of a large tree, You can checkout the top level folder " "only, then update selected folders recursively. " msgstr "" "你可以选择要检出的深度,它允许你指定子目录递归的深度。" "如果你只需要大目录中的几个子条目,你可以只检出最高层目录,然后递归的更新选择的" "目录。" #. (para) msgid "" "If you check out a sparse working copy (i.e., by choosing something other " "than fully recursive for the checkout depth), you can " "fetch additional sub-folders by using the repository browser () or the check for modifications dialog ()." msgstr "" "如果你检出了一个稀疏的工作副本(例如,在签出时选择的签出深度不是全递归" "),你可以使用版本库浏览器()" "或检查修改对话框()来获得其它子文件夹。" #. (para) #, fuzzy msgid "" "In the repository browser, Right click on the checked out " "folder, then use TortoiseSVNRepo-" "Browser to bring up the repository browser. Find " "the sub-folder you would like to add to your working copy, then use " "Context menuUpdate item to " "revision... That menu will only be visible if the " "selected item does not exist yet in your working copy, but the parent item " "does exist." msgstr "" "如果希望比较某个文件的两个历史版本,比如同一个文件修订版本100和200,可以用" "TortoiseSVN显示日志列出这个文件的历史版本纪录,选择希望比较的两个版本," "然后使用右键菜单比较版本差异。" #. (para) msgid "" "In the check for modifications dialog, first click on the button " "Check repository. The dialog will show all the files " "and folders which are in the repository but which you have not checked out as " "remotely added. Right click on the folder" "(s) you would like to add to your working copy, then use " "Context menuUpdate." msgstr "" "在检查修改对话框中,首先点击检查版本库按钮。对话框会将" "你未检出,但是位于版本库中的文件和文件夹显示为远程加入。" "右键单击你需要加入工作副本的文件夹,选择" "右键菜单更新。" #. (para) #, fuzzy msgid "" "This feature is very useful when you only want to checkout parts of a large " "tree, but you want the convenience of updating a single working copy. Suppose " "you have a large tree which has sub-folders Project01 to " "Project99, and you only want to checkout " "Project03, Project25 and " "Project76/SubProj. Use these steps:" msgstr "" "当你想要检出一个很大的目录结构中的一部分时这个功能非常有用,你可以利用更新单独" "的工作副本这一便利方法。假设有一个很大的目录结构,它包含有子文件夹 " "Project01Project99,你只想检出 " "Project03Project25 和 " "Project76/SubProj。按下面的步骤操作:" #. (para) msgid "" "Checkout the parent folder with depth Only this item You now " "have an empty top level folder." msgstr "" "检出父文件夹时检出深度使用仅此项。现在,你获得一个空的顶级文件" "夹。" #. (para) #, fuzzy msgid "" "Select the new folder and use TortoiseSVNRepo browser to display the " "repository content." msgstr "" "选择新的文件夹,并使用 TortoiseSVN" "版本库浏览器来显示版本库的内容。" #. (para) msgid "" "Right click on Project03 and Context " "menuUpdate item to revision.... Keep the default settings and click on OK. You now have that folder fully populated." msgstr "" "右键单击 Project03 然后选择右键菜单更新项目至版本...。保持默认设" "置并单击 确定。现在这个文件夹就位于你的工作副本中了。" #. (para) msgid "Repeat the same process for Project25." msgstr "为 Project25 重复相同的操作。" #. (para) msgid "" "Navigate to Project76/SubProj and do the same. This time " "note that the Project76 folder has no content except for " "SubProj, which itself is fully populated. Subversion has " "created the intermediate folders for you without populating them." msgstr "" "定位至 Project76/SubProj 并且进行相同的操作。这次需要注意," "Project76 文件夹中除了新增的 SubProj 没" "有其它内容。Subversion 创建了相关的文件夹并没有拿出其全部内容。" #. (title) msgid "Changing working copy depth" msgstr "改变工作副本深度" #. (para) msgid "" "Once you have checked out a working copy to a particular depth you can change " "that depth later to get more or less content using " "Context menuUpdate item to " "revision...." msgstr "" "一旦你检出一个特定深度的工作副本,你可以使用右键菜单更新项目至版本...更改深度获得" "更多和更少的内容。" #. (title) msgid "Using an older server" msgstr "使用旧版本服务器" #. (para) msgid "" "Pre-1.5 servers do not understand the working copy depth request, so they " "cannot always deal with requests efficiently. The command will still work, " "but an older server may send all the data, leaving the client to filter out " "what is not required, which may mean a lot of network traffic. If possible " "you should upgrade your server to 1.5." msgstr "" "1.5 版之前的服务器不支持设置工作副本深度的请求,所以它们不能有效的处理请求。不" "过该命令仍然可以工作,但是旧版的服务器会发送全部数据,由客户端过滤掉不需要的内" "容,这意味着会产生很多的网络数据流量。如果可能,应该升级服务器到 1.5 版" #. (para) msgid "" "If the project contains references to external projects which you do " "not want checked out at the same time, use the " "Omit externals checkbox." msgstr "" "如果项目含有外部项目的引用,而这些引用你希望同时检出," "请选中忽略外部项目复选框。" #. (para) #, fuzzy msgid "" "If Omit externals is checked, or if you wish to increase " "the depth value, you will have to perform updates to your working copy using " "TortoiseSVNUpdate to Revision... instead of TortoiseSVNUpdate. The standard update " "will include all externals and keep the existing depth." msgstr "" "如果这两个选项的任何一个选中了,你应该使用TortoiseSVN更新至版本...来更新你的工作副" "本而不是使用TortoiseSVN更新。标准的更新将会包含所有的子文件夹和外部引用。" #. (para) msgid "" "It is recommended that you check out only the trunk part " "of the directory tree, or lower. If you specify the parent path of the " "directory tree in the URL then you might end up with a full hard disk since " "you will get a copy of the entire repository tree including every branch and " "tag of your project!" msgstr "" "强烈建议你只检出 trunk 或更低层的目录树。如果你在 URL 中指" "定了根路径,你的硬盘有可能被塞满,因为你将会得到整个版本库树的副本,包括项目所" "有的分支和标签(tag)!" #. (title) msgid "Exporting" msgstr "关于导出" #. (para) msgid "" "Sometimes you may want to create a local copy without any of those ." "svn directories, e.g. to create a zipped tarball of your source. " "Read to find out how to do that." msgstr "" "有时你可能想要建立一个没有.svn目录的本地的副本,比如建立" "一个源代码压缩包。要达到这个目的,请参考。" #. (title) msgid "Committing Your Changes To The Repository" msgstr "将你的修改提交到版本库" #. (primary) msgid "commit" msgstr "提交" #. (primary) msgid "send changes" msgstr "发送更改" #. (primary) msgid "check in" msgstr "提交" #. (para) msgid "" "Sending the changes you made to your working copy is known as " "committing the changes. But before you commit you have " "to make sure that your working copy is up to date. You can either use " "TortoiseSVNUpdate directly. Or you can use TortoiseSVNCheck for Modifications " "first, to see which files have changed locally or on the server." msgstr "" "将你对工作副本的修改发送给版本库,称为提交修改。但在你" "提交之前要确保你的工作副本是最新的。你可以直接使用" "TortoiseSVN更新,或者,你可以先使用TortoiseSVN检查修改看看哪些文件在本地或是" "服务器上已经有了改动。" #. (title) msgid "The Commit Dialog" msgstr "提交对话框" #. (title) msgid "The Commit dialog" msgstr "提交对话框" #. (para) msgid "" "If your working copy is up to date and there are no conflicts, you are ready " "to commit your changes. Select any file and/or folders you want to commit, " "then TortoiseSVNCommit.... " msgstr "" "如果你的工作副本是最新的,并且没有冲突,你就已经为提交做好准备了,选择你要提交" "的文件和/或文件夹,然后TortoiseSVN" "提交.... " #. (para) msgid "" "The commit dialog will show you every changed file, including added, deleted " "and unversioned files. If you don't want a changed file to be committed, just " "uncheck that file. If you want to include an unversioned file, just check " "that file to add it to the commit." msgstr "" "提交对话框将显示每个被改动过的文件,包括新增的、删除的和未受控的文件。如果你不" "想改动被提交,只要将该文件的复选框的勾去掉就可以了。如果你要加入未受控的文件," "只要勾选该文件把它加入提交列表就可以了。" #. (para) #. (para) msgid "" "Items which have been switched to a different repository path are also " "indicated using an (s) marker. You may have switched " "something while working on a branch and forgotten to switch back to trunk. " "This is your warning sign!" msgstr "" "那些被切换(switched)到不同版本库路径的项也用(s)标记来表示。" "当工作在分支上的时候你可能切换到某处,然后忘记切换回主干。这是你的警告信号!" #. (title) msgid "Commit files or folders?" msgstr "提交文件还是文件夹?" #. (para) msgid "" "When you commit files, the commit dialog shows only the files you have " "selected. When you commit a folder the commit dialog will select the changed " "files automatically. If you forget about a new file you created, committing " "the folder will find it anyway. Committing a folder does not mean that every file gets marked as changed; It just makes your " "life easier by doing more work for you." msgstr "" "当你提交文件时,提交对话框只显示你所提中的文件。当你提交文件夹中,提交对话框将" "自动选择有改动的文件。如果你忘记了你建立的一个新文件,提交文件夹将使你可以找到" "它。提交一个文件夹并不意味着每个文件都被标识为修改过的," "它仅仅是通过帮你多做些事从而让你的生活更滋润一点。" #. (para) msgid "" "If you have modified files which have been included from a different " "repository using svn:externals, those changes cannot be " "included in the same atomic commit. A warning symbol below the file list " "tells you if this has happened, and the tooltip explains that those external " "files have to be committed separately." msgstr "" "如果你修改的文件是使用了svn:externals从别的版本库中包含进来" "的,那么这些改动不会被自动提交。在文件列表下方的警告符号会告诉你是否出现了这种" "状况,工具提示(tooltip)提示了外部文件必须要分开提交。" #. (title) msgid "Many unversioned files in the commit dialog" msgstr "在提交对话框中有很多未受控的文件" #. (para) msgid "" "add the file (or a wildcard extension) to the list of files to exclude on the " "settings page. This will affect every working copy you have." msgstr "" "将文件(或是通配符扩展)加入到设置页的排除列表中。这对每个工作副本都起作用。" #. (para) msgid "" "add the file to the svn:ignore list using " "TortoiseSVNAdd to ignore list This will only affect the directory on which you " "set the svn:ignore property. Using the SVN Property " "Dialog, you can alter the svn:ignore property for a " "directory." msgstr "" "使用TortoiseSVN加入忽略列表,将文件加入svn:ignore列表。 这只" "对你设置了svn:ignore属性的路径有效。使用SVN属性对话框,你可" "以改变一个目录的svn:ignore属性。" #. (para) msgid "" "If you think that the commit dialog shows you too many unversioned (e.g. " "compiler generated or editor backup) files, there are several ways to handle " "this. You can: Read for " "more information." msgstr "" "如果你认为提交对话框显示了太多的未受版本控制的文件(如编译器产生的文件或是编辑" "器的备份文件),有几种方法可以处理这种情况。你可以: 参考 " " 获得更多的信息。" #. (para) msgid "" "Double clicking on any modified file in the commit dialog " "will launch the external diff tool to show your changes. The context menu " "will give you more options, as shown in the screenshot. You can also drag " "files from here into another application such as a text editor or an IDE." msgstr "" "在提交对话框中双击任何修改过的文件,将运行外部 diff 工具显示" "你做的改动。上下文菜单将给你更多的选项,请看屏幕截图。你可以从这里将文件拖动到" "另一个应用程序中,如文本编辑器或 IDE。" #. (para) #, fuzzy msgid "" "You can select or deselect items by clicking on the checkbox to the left of " "the item. For directories you can use Shift-select to make the action recursive." msgstr "" "你可以点击项目左边的检查框,来选定或者取消。对于目录,你可以用 SHIFT-" "Select 来执行递归操作。" #. (para) msgid "" "The columns displayed in the bottom pane are customizable. If you " "right click on any column header you will see a context menu " "allowing you to select which columns are displayed. You can also change " "column width by using the drag handle which appears when you move the mouse " "over a column boundary. These customizations are preserved, so you will see " "the same headings next time." msgstr "" "在底部面板中显示的列是可定制的。如果你右击任何一列的头部,你" "就会看到一个上下文菜单,允许你选择哪一列要显示。还可以在鼠标移动到列边界时通过" "拖动手把来改变列的宽度。这些定制的内容都会被保留下来,下一次你会见到相同的列。" #. (para) msgid "" "By default when you commit changes, any locks that you hold on files are " "released automatically after the commit succeeds. If you want to keep those " "locks, make sure the Keep locks checkbox is checked. The " "default state of this checkbox is taken from the no_unlock " "option in the Subversion configuration file. Read for information on how to edit the Subversion configuration " "file." msgstr "" "缺省情况下,当你成功提交修改后,你在这些文件上持有的锁会被自动释放。如果你需要" "保留锁,请确认选中检查框保留锁。此检查框的缺省状态从 " "Subversion 配置文件的 no_unlock 选项获取。参考 以获得更多关于编辑 Subversion 配置文件的" "信息。" #. (para) msgid "" "You can drag files into the commit dialog from elsewhere, so long as the " "working copies are checked out from the same repository. For example, you may " "have a huge working copy with several explorer windows open to look at " "distant folders of the hierarchy. If you want to avoid committing from the " "top level folder (with a lengthy folder crawl to check for changes) you can " "open the commit dialog for one folder and drag in items from the other " "windows to include within the same atomic commit." msgstr "" "你可以将文件从别的地方拖动到提交对话框,只要工作副本是由同一版本库中检出就可以" "了。比如,你有一个很大的工作副本,要开好几个资源管理器窗口来查看层次中不同的文" "件夹。如果你要避免从顶级文件夹提交(冗长而缓慢的文件夹改动检查),你可以打开一个" "文件夹的提交对话框,然后将别的窗口中的项拖进去,可样就可以一次提交它们了。" #. (para) msgid "" "You can drag unversioned files which reside within a working copy into the " "commit dialog, and they will be SVN added automatically." msgstr "你可以将未版本控制的文件拖到工作副本提交对话框中,它们就会被自动增加。" #. (title) #. (title) msgid "Repairing External Renames" msgstr "修复外部改名" #. (para) #. (para) msgid "" "Sometimes files get renamed outside of Subversion, and they show up in the " "file list as a missing file and an unversioned file. To avoid losing the " "history you need to notify Subversion about the connection. Simply select " "both the old name (missing) and the new name (unversioned) and use " "Context MenuRepair Move to pair the two files as a rename." msgstr "" "有时候文件不是用Subversion改名,于是它们在文件列表中作为丢失和未版本控制的文件" "出现。为了避免丢失历史,你需要通知Subversion。简单的选择老名称(丢失)和新名称" "(未版本控制),然后使用右键菜单修复" "移动来指明这两个文件是改名关系。" #. (title) #. (title) msgid "Change Lists" msgstr "修改列表" #. (para) msgid "" "The commit dialog supports Subversion's changelist feature to help with " "grouping related files together. Find out about this feature in ." msgstr "" "提交对话框支持 Subversion 的更改列表功能来分组相关的文件。关于这个功能,请查看" "。" #. (title) msgid "Excluding Items from the Commit List" msgstr "从提交列表中排除项目" #. (para) msgid "" "Sometimes you have versioned files that change frequently but that you really " "don't want to commit. Sometimes this indicates a flaw in your build process - " "why are those files versioned? should you be using template files? But " "occasionally it is inevitable. A classic reason is that your IDE changes a " "timestamp in the project file every time you build. The project file has to " "be versioned as it includes all the build settings, but it doesn't need to be " "committed just because the timestamp changed." msgstr "" "有时,你经常更改一些版本控制的文件但你却不打算提交它们。这有可能说明你的构建过" "程中存在瑕疵 - 那些文件为什么是版本控制的?应该使用模版文件吗?但可能这是无法" "避免的。一个经典的原因是当你每次构建的时候,集成开发环境(IDE)更改了项目文件的" "时间戳。项目文件是版本控制的,因为它包含全部的构建设置。但是,仅仅因为时间戳更" "改了的情况下,你并不需要提交它。" #. (para) msgid "" "To help out in awkward cases like this, we have reserved a changelist called " "ignore-on-commit. Any file added to this changelist will " "automatically be unchecked in the commit dialog. You can still commit " "changes, but you have to select it manually in the commit dialog." msgstr "" "为了解决这样一个棘手的问题,我们准备了一个名叫 ignore-on-commit 的更改列表。任何一个被添加到这个列表的文件在提交对话框中将不会自动选" "中。你仍然可以提交此文件的更改,不过你需要在提交对话框中手动选中它。" #. (title) msgid "Commit Log Messages" msgstr "提交日志信息" #. (para) msgid "" "Be sure to enter a log message which describes the changes you are " "committing. This will help you to see what happened and when, as you browse " "through the project log messages at a later date. The message can be as long " "or as brief as you like; many projects have guidelines for what should be " "included, the language to use, and sometimes even a strict format." msgstr "" "确保输入描述你所提交的修改内容的日志信息。这可以帮你回顾做了什么,什么时候做" "的。信息的内容可长可短,许多项目规定了要包含的内容、使用的语言甚至是严格的格" "式。" #. (para) msgid "" "You can apply simple formatting to your log messages using a convention " "similar to that used within emails. To apply styling to text, use *text* for bold, _text_ " "for underlining, and ^text^ for italics." msgstr "" "你可以使用与电子邮件相似的约定,简单格式化日志消息。如果对文本采用这些样式,使用*文本*表示粗体,_文本_表示下划线,^文本^表示斜体。" #. (title) msgid "The Commit Dialog Spellchecker" msgstr "提交对话框的拼写检查器" #. (para) msgid "" " TortoiseSVN includes a spellchecker to help you get your log " "messages right. This will highlight any mis-spelled words. Use the context " "menu to access the suggested corrections. Of course, it doesn't know " "every technical term that you do, so correctly spelt " "words will sometimes show up as errors. But don't worry. You can just add " "them to your personal dictionary using the context menu." msgstr "" " TortoiseSVN包含了一个拼写检查器帮助你正确地书写日志信息。对任" "何错误拼写的词都高亮显示。使用右键菜单可以获得修改建议。当然它不会知道" "所有的技术术语,所以有时一些拼写正确的词会被当作错误。但" "不用担心,你可以使用右键菜单将它们加入你的个人字典中。" #. (para) #, fuzzy msgid "" "The log message window also includes a filename and function auto-completion " "facility. This uses regular expressions to extract class and function names " "from the (text) files you are committing, as well as the filenames " "themselves. If a word you are typing matches anything in the list (after you " "have typed at least 3 characters, or pressed Ctrl+Space), a " "drop-down appears allowing you to select the full name. The regular " "expressions supplied with TortoiseSVN are held in the TortoiseSVN " "installation bin folder. You can also define your own " "regexes and store them in %APPDATA%\\TortoiseSVN\\autolist.txt. Of course your private autolist will not be overwritten when you " "update your installation of TortoiseSVN. If you are unfamiliar with regular " "expressions, take a look at the introduction at http://en.wikipedia.org/" "wiki/Regular_expression, and the online documentation and " "tutorial at http://www.regular-expressions.info/." msgstr "" "日志信息窗口还包含一个文件名和函数自动完成的功能。这使用了正则表达式来从你提交" "的(文本)文件中提取类和函数名,当然包括文件名本身。如果你现在敲入的一个词与列表" "中的任意一个匹配(在你输入至少3个字符后),就会出现一个下拉列表,允许你选择完整" "的名字。与TortoiseSVN一起提供的正则表达式位于TortoiseSVN安装路径的" "bin文件夹中。你可以定义自己的正则式并将其存放在" "%APPDATA%\\TortoiseSVN\\autolist.txt。当然你自定义的自动列表不会在" "升级安装的时候被覆盖。如果你不熟悉正则表达式,请参考在线文件和教程: http://www.regular-" "expressions.info/." #. (para) msgid "" "You can re-use previously entered log messages. Just click on " "Recent messages to view a list of the last few " "messages you entered for this working copy. The number of stored messages can " "be customized in the TortoiseSVN settings dialog." msgstr "" "你可以重复使用先前键入的日志信息。只需要点击最近信息即" "可查看你为此工作副本键入的最近几条信息。" #. (para) msgid "" "You can clear all stored commit messages from the Saved data page of TortoiseSVN's settings, or you can clear individual " "messages from within the Recent messages dialog using " "the Delete key." msgstr "" "你可以从 TortoiseSVN 的设置窗口的已保存数据页中清除所有的" "保存消息,或者你可以在最近信息对话框中使用 " "Delete 键单独删除某条消息。" #. (para) #, fuzzy msgid "" "If you want to include the checked paths in your log message, you can use the " "command Context MenuPaste " "filename list in the edit control." msgstr "" "如果右击一个版本你可以使用右键菜单显示日志 来查看它的历史。" #. (para) msgid "" "Another way to insert the paths into the log message is to simply drag the " "files from the file list onto the edit control." msgstr "另一个向日志消息中插入路径的方法是: 从文件列表中将文件拖拽到文本框中。" #. (title) msgid "Special Folder Properties" msgstr "指定文件夹属性" #. (para) msgid "" "There are several special folder properties which can be used to help give " "more control over the formatting of commit log messages and the language used " "by the spellchecker module. Read " "for further information." msgstr "" "有几个特殊的文件夹属性可用于帮助我们得到更多的对提交日志信息的格式以及拼写检查" "模块的控制。参考以了解详情。" #. (title) msgid "Integration with Bug Tracking Tools" msgstr "与缺陷跟踪工具集成" #. (para) #, fuzzy msgid "" "If you have activated the bug tracking system, you can set one or more Issues " "in the Bug-ID / Issue-Nr: text box. Multiple issues " "should be comma separated. Alternatively, if you are using regex-based bug " "tracking support, just add your issue references as part of the log message. " "Learn more in ." msgstr "" "如果你激活了一个缺陷跟踪系统,你可以在Bug-ID / Issue-Nr:" "文本框中设置一个或多个问题。多个问题应该用逗号分割。另外,如果你使用基于正则表" "达式的缺陷跟踪支持,只要将你的问题引用作为日志信息的一部分加入就可以了。详情请" "见 。" #. (title) msgid "Commit Progress" msgstr "提交进程" #. (title) msgid "The Progress dialog showing a commit in progress" msgstr "显示提交进度的进度对话框" #. (para) msgid "" "After pressing OK, a dialog appears displaying the " "progress of the commit. " msgstr "" "在按下OK之后,会出现一个对话框显示提交的进度。" "" #. (term) #. (term) msgid "Blue" msgstr "蓝色" #. (para) msgid "Committing a modification." msgstr "提交一个修改。" #. (term) #. (term) #. (term) msgid "Purple" msgstr "紫色" #. (para) msgid "Committing a new addition." msgstr "提交一个新增项。" #. (term) #. (term) #. (term) msgid "Dark red" msgstr "深红" #. (para) msgid "Committing a deletion or a replacement." msgstr "提交一个删除或是替换。" #. (term) #. (term) #. (term) msgid "Black" msgstr "黑色" #. (para) msgid "All other items." msgstr "所有其他项。" #. (para) msgid "" "The progress dialog uses colour coding to highlight different commit actions " "" msgstr "进度对话框使用颜色代码来高亮显示不同的提交行为。" #. (para) #. (para) #. (para) msgid "" "This is the default colour scheme, but you can customise those colours using " "the settings dialog. Read for " "more information." msgstr "" "这是默认的配色方案,但你可以通过设置对话框来定制这些颜色。参考获得详情。" #. (title) msgid "Update Your Working Copy With Changes From Others" msgstr "用来自别人的修改更新你的工作副本" #. (primary) #. (primary) msgid "update" msgstr "更新" #. (primary) msgid "fetch changes" msgstr "获取改变" #. (title) msgid "Progress dialog showing finished update" msgstr "已经完成更新的进度对话框" #. (para) #, fuzzy msgid "" " Periodically, you should ensure that changes done by others " "get incorporated in your local working copy. The process of getting changes " "from the server to your local copy is known as updating. " "Updating may be done on single files, a set of selected files, or recursively " "on entire directory hierarchies. To update, select the files and/or " "directories you want, right click and select " "TortoiseSVNUpdate in the explorer context menu. A window will pop up displaying the " "progress of the update as it runs. Changes done by others will be merged into " "your files, keeping any changes you may have done to the same files. The " "repository is not affected by an update." msgstr "" "你应该定期地确保别人作的修改与你的工作副本可以整合。从服务器上" "获取改动到你本地副本的过程称为更新。更新可以针对一个文件、" "几个选中的文件或是递归整个目录层次。要进行更新操作,请选择要更新文件和/或路" "径,右击选择右键菜单中的TortoiseSVN更新。会弹出一个窗口显示更新的" "进度。别人作的修改将合并到你的文件中,你所做的修改会被保留。版本库受" "更新操作的影响。" #. (para) msgid "New item added to your WC." msgstr "新项已经增加到你的工作副本中。" #. (para) msgid "" "Redundant item deleted from your WC, or missing item replaced in your WC." msgstr "你的工作副本中删除了多余项,或是你的工作副本中丢失的项被替换。" #. (term) #. (term) msgid "Green" msgstr "绿色" #. (para) msgid "Changes from repository successfully merged with your local changes." msgstr "版本库中的修改与你的本地修改成功合并。" #. (term) #. (term) msgid "Bright red" msgstr "亮红" #. (para) msgid "" "Changes from repository merged with local changes, resulting in conflicts " "which you need to resolve." msgstr "来自版本库的修改在与本地修改合并时出现了冲突,需要你解决。" #. (para) msgid "" "Unchanged item in your WC updated with newer version from the repository." msgstr "你WC中的没有改动的项被来自版本库中新版本所更新。" #. (para) msgid "" "The progress dialog uses colour coding to highlight different update actions " "" msgstr "进度对话框使用颜色代码来高亮不同的更新行为" #. (para) #, fuzzy msgid "" "If you get any conflicts during an update (this can " "happen if others changed the same lines in the same file as you did and those " "changes don't match) then the dialog shows those conflicts in red. You can " "double click on these lines to start the external merge tool " "to resolve the conflicts." msgstr "" "如果你在更新中遇到了冲突(这是由于别人与你修改了同一个文件的" "同一行代码,并且两者的修改不匹配),对话框中将冲突显示为红色,你可以双" "击这些行启动外部合并工具来解决冲突。" #. (para) #, fuzzy msgid "" "When the update is complete, the progress dialog shows a summary of the " "number of items updated, added, removed, conflicted, etc. below the file " "list. This summary information can be copied to the clipboard using " "Ctrl+C." msgstr "" "当更新完成后,进度对话框在文件列表下面显示汇总信息,多少项更新,增加,删除,冲" "突等。汇总信息可以使用CTRL+C复制到剪贴板。" #. (para) #, fuzzy msgid "" "The standard Update command has no options and just updates your working copy " "to the HEAD revision of the repository, which is the most common use case. If " "you want more control over the update process, you should use " "TortoiseSVNUpdate to Revision... instead. This allows you to update your working " "copy to a specific revision, not only to the most recent one. Suppose your " "working copy is at revision 100, but you want it to reflect the state which " "it had in revision 50 - then simply update to revision 50. In the same dialog " "you can also choose the depth at which to update the " "current folder. The terms used are described in . The default depth is Working copy, " "which preserves the existing depth setting. You can also choose whether to " "ignore any external projects in the update (i.e. projects referenced using " "svn:externals)." msgstr "" "标准的更新命令没有选项,仅仅是把你的工作副本更新到版本库中的最新版本,这也是最" "常用的情况。如果你要对更新过程进行更多的控制,就要使用" "TortoiseSVN更新到版本...。这个操作允许你更新工作副本到一个指定的版本,不仅仅" "是最新的。假设你的工作副本是在版本100,但你要回顾一下版本50是什么样的——那你只" "要简单地更新到版本50就可以了。在同一个对话框中你还可以选择不递归更新当前文件夹" "(就是不更新所有的子文件夹)并且可以选择是否在更新中忽略外部的项目(比如具有属性 " "svn:externals的被引用的项目)." #. (para) #, fuzzy msgid "" "If you update a file or folder to a specific revision, you should not make " "changes to those files. You will get out of date error " "messages when you try to commit them! If you want to undo changes to a file " "and start afresh from an earlier revision, you can rollback to a previous " "revision from the revision log dialog. Take a look at for further instructions, and alternative methods." msgstr "" "如果你把一个文件或是文件夹更新到某个特定的版本,你不应该对这些文件做修改。你在" "提交的时候会得到一个已经过期的错误消息!如果你要取消修改,从" "一个早前的版本重新开始,你可以通过版本日志对话框回滚到之前的版本。请看以获得详情和其他方法。" #. (para) #, fuzzy msgid "" "Update to Revision can " "occasionally be useful to see what your project looked like at some earlier " "point in its history. But in general, updating individual files to an earlier " "revision is not a good idea as it leaves your working copy in an inconsistent " "state. If the file you are updating has changed name, you may even find that " "the file just disappears from your working copy because no file of that name " "existed in the earlier revision. You should also note that the item will show " "a normal green overlay, so it is indistinguishable from files which are up-to-" "date." msgstr "" "更新到版本在你偶尔要看看你" "的项目在早前某时刻是什么样子的时候很有用。但通常,更新单个文件到之前的版本不是" "一个好主意,因为这会使你的工作副本处于不一致的状态。如果你要更新的文件已经改了" "名,你可能甚至发现该文件从你的工作副本中消失了,因为早期的版本中不存在这个名字" "的文件。如果你只是简单地想要一个旧版本文件的本地副本,最好是在该文件的日志对话" "框中使用右键菜单另存版本为...命令。" #. (para) #, fuzzy msgid "" "If you simply want a local copy of an old version of a file it is better to " "use the Context MenuSave revision " "to... command from the log dialog for that file." msgstr "" "如果右击一个版本你可以使用右键菜单显示日志 来查看它的历史。" #. (title) msgid "Multiple Files/Folders" msgstr "多文件/文件夹" #. (para) msgid "" "If you select multiple files and folders in the explorer and then select " "Update, all of those " "files/folders are updated one by one. TortoiseSVN makes sure that all files/" "folders which are from the same repository are updated to the exact same " "revision! Even if between those updates another commit occurred." msgstr "" "如果你在资源管理器中选择了多文件和文件夹,然后选择更" "新,这些文件/文件夹一个接一个的被更新。TortoiseSVN" "确保所有的来自同一版本库的文件/文件夹被更新到同一个版本!即使在更新过程中发生了" "另一个提交。" #. (title) msgid "Local File Already Exists" msgstr "本地文件已经存在" #. (para) msgid "" "Sometimes when you try to update, the update fails with a message to say that " "there is already a local file of the same name. This typically happens when " "Subversion tries to checkout a newly versioned file, and finds that an " "unversioned file of the same name already exists in your working folder. " "Subversion will never overwrite an unversioned file - it might contain " "something you are working on, which coincidentally has the same filename as " "another developer has used for his newly committed file." msgstr "" "有时在你试图更新的时候,更新失败,提示信息说已经有一个同名的本地文件。通常发生" "在Subversion试图检出一个新增的受控文件时,发现一个未受控的同名文件已经在工作路" "径中存在。Subversion绝不会覆盖一个未受控的文件——因为它有可能有你需要的东西,却" "碰巧与另一个开发者新提交的文件重名了。" #. (para) msgid "" "If you get this error message, the solution is simply to rename the local " "unversioned file. After completing the update, you can check whether the " "renamed file is still needed." msgstr "" "如果你得到这个错误信息,解决的方法就是把本地的未受控文件重命名。在完成更新之" "后,你再检查被重命名的文件是不是还需要。" #. (para) msgid "" "If you keep getting error messages, use TortoiseSVNCheck for Modifications " "instead to list all the problem files. That way you can deal with them all at " "once." msgstr "" "如果你一直得到错误,使用TortoiseSVN检查修改来列出所有有问题的文" "件。这样你可以一次性解决它们。" #. (title) msgid "Resolving Conflicts" msgstr "解决冲突" #. (primary) msgid "tree conflict" msgstr "树冲突" #. (primary) msgid "resolve" msgstr "解决" #. (term) msgid "file conflicts" msgstr "文件冲突" #. (para) msgid "" "A file conflict occurs if two (or more) developers have changed the same few " "lines of a file." msgstr "" "当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。" #. (term) msgid "tree conflicts" msgstr "树冲突" #. (para) msgid "" "A tree conflict occurs when a developer moved/renamed/deleted a file or " "folder, which another developer either also has moved/renamed/deleted or just " "modified." msgstr "" "当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行" "了移动、重命名、删除或者仅仅是修改时就会发生树冲突。" #. (para) msgid "" "Once in a while, you will get a conflict when you update/" "merge your files from the repository or when you switch your working copy to " "a different URL. There are two kinds of conflicts: " msgstr "" "偶尔,当你从版本库更新、合并文件时,或者切换工作副本至一个不同的 URL 时你会遇" "到冲突。有两种冲突: " #. (title) msgid "File Conflicts" msgstr "文件冲突" #. (term) msgid "filename.ext.mine" msgstr "文件名.ext.mine" #. (para) msgid "" "This is your file as it existed in your working copy before you updated your " "working copy - that is, without conflict markers. This file has your latest " "changes in it and nothing else." msgstr "" "这是你的文件,在你更新你的工作副本之前存在于你的的工作副本中——也就是说,没有冲" "突标志。这个文件除了你的最新修改外没有别的东西。" #. (term) msgid "filename.ext.rOLDREV" msgstr "文件名.ext.r旧版本" #. (para) msgid "" "This is the file that was the BASE revision before you updated your working " "copy. That is, it the file that you checked out before you made your latest " "edits." msgstr "" "这是在你更新你的工作副本之前的基础版本(BASE revision)文件。也就是说,它是在你" "做最后修改之前所检出的文件。" #. (term) msgid "filename.ext.rNEWREV" msgstr "文件名.ext.r新版本" #. (para) msgid "" "This is the file that your Subversion client just received from the server " "when you updated your working copy. This file corresponds to the HEAD " "revision of the repository." msgstr "" "这个文件是当你更新你的工作副本时,你的 Subversion 客户端从服务器接收到的。这个" "文件对应于版本库中的最新版本。" #. (para) msgid "" "A file conflict occurs when two or more developers have changed the same few " "lines of a file. As Subversion knows nothing of your project, it leaves " "resolving the conflicts to the developers. Whenever a conflict is reported, " "you should open the file in question, and search for lines starting with the " "string <<<<<<<. The conflicting area " "is marked like this: \n" "\t<<<<<<< filename\n" "\t\tyour changes\n" "\t=======\n" "\t\tcode merged from repository\n" "\t>>>>>>> revision\n" "\t Also, for every conflicted file Subversion places three " "additional files in your directory: " msgstr "" "当两名或更多开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。由于 " "Subversion 不知道你的项目的具体情况,它把解决冲突的工作留给了开发人员。一旦出" "现冲突,你就应该打开有问题的文件,查找以字符串<<<<<" "<<开头的行。有冲突的区域用如下的方式标记: \n" "\t<<<<<<< 文件名\n" "\t\t你的修改\n" "\t=======\n" "\t\t合并自版本库中的代码\n" "\t>>>>>>> 版本\n" "对于每个冲突的文件 Subversion 在你的目录下放置了三个文件: " "" #. (para) msgid "" "You can either launch an external merge tool / conflict editor with " "TortoiseSVNEdit Conflicts or you can use any other editor to manually resolve " "the conflict. You should decide what the code should look like, do the " "necessary changes and save the file." msgstr "" "你可以通过TortoiseSVN编辑冲突运行外部合并工具/冲突编辑器,或者你可以使用任何别的编" "辑器手动解决冲突。你需要冲定哪些代码是需要的,做一些必要的修改然后保存。" #. (para) msgid "" "Afterwards execute the command TortoiseSVNResolved and commit your " "modifications to the repository. Please note that the Resolve command does " "not really resolve the conflict. It just removes the filename.ext." "mine and filename.ext.r* files, to allow you " "to commit your changes." msgstr "" "然后,执行命令TortoiseSVN已解决并提交人的修改到版本库。需要注意的是已解决命令并不是" "真正的解决了冲突,它只是删除了filename.ext.mine和" "filename.ext.r*两个文件,允许你提交修改。" #. (para) msgid "" "If you have conflicts with binary files, Subversion does not attempt to merge " "the files itself. The local file remains unchanged (exactly as you last " "changed it) and you have filename.ext.r* files. If you " "want to discard your changes and keep the repository version, just use the " "Revert command. If you want to keep your version and overwrite the repository " "version, use the Resolved command, then commit your version." msgstr "" "如果你的二进制文件有冲突,Subversion不会试图合并文件。本地文件保持不变(完全是" "你最后修改时的样子),但你会看到filename.ext.r*文件。如果" "你要撤消你的修改,保留版本库中的版本,请使用还原(Revert)命令。如果你要保持你的" "版本覆盖版本库中的版本,使用已解决命令,然后提交你的版本。" #. (para) msgid "" "You can use the Resolved command for multiple files if you right click on the " "parent folder and select TortoiseSVNResolved... This will bring " "up a dialog listing all conflicted files in that folder, and you can select " "which ones to mark as resolved." msgstr "" "你可以右击父文件夹,选择TortoiseSVN已解决...,使用“已解决”命令来" "解决多个文件。这个操作会出现一个对话框,列出文件夹下所有有冲突的文件,你可以选" "择将哪些标记成已解决。" #. (title) msgid "Tree Conflicts" msgstr "树冲突" #. (para) msgid "" "A tree conflict occurs when a developer moved/renamed/deleted a file or " "folder, which another developer either also has moved/renamed/deleted or just " "modified. There are many different situations that can result in a tree " "conflict, and all of them require different steps to resolve the conflict." msgstr "" "当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行" "了移动、重命名、删除或者仅仅是修改时就会发生树冲突。有很多种不同的情形可以导致" "树冲突,而且不同的情形需要不同的步骤来解决冲突。" #. (para) msgid "" "When a file is deleted locally in Subversion, the file is also deleted from " "the local file system, so even if it is part of a tree conflict it cannot " "show a conflicted overlay and you cannot right click on it to resolve the " "conflict. Use the Check for Modifications dialog instead " "to access the Edit conflicts option." msgstr "" "当一个文件通过 Subversion 在本机删除后,文件也从本机文件系统中删除。因此即使它" "是树冲突的一部分,却既不能显示冲突的叠加图标也不能通过右键单击来解决冲突。使用" "检查修改对话框来获得编辑冲突选项。" #. (para) msgid "" "TortoiseSVN can help find the right place to merge changes, but there may be " "additional work required to sort out the conflicts. Remember that after an " "update the working BASE will always contain the revision of each item as it " "was in the repository at the time of update. If you revert a change after " "updating it goes back to the repository state, not to the way it was when you " "started making your own local changes." msgstr "" "TortoiseSVN 能够协助找到合并更改的正确位置,但是需要作一些额外的工作来整理冲" "突。请牢记: 当进行一次更新操作后,工作副本的基础文件将会包括每一个项目在执行更" "新操作时版本库中的版本。如果你在进行更新后再撤销更改,工作副本将返回到版本库的" "状态,而不是你开始进行更改前的状态。" #. (title) msgid "Local delete, incoming edit upon update" msgstr "本地删除,当更新时有更改进入" #. (para) msgid "" "Developer A modifies Foo.c and commits it to the " "repository" msgstr "开发人员 A 修改 Foo.c 并将其提交至版本库中" #. (para) msgid "" "Developer B has simultaneously moved Foo.c to " "Bar.c in his working copy, or simply deleted " "Foo.c or its parent folder." msgstr "" "开发人员 B 同时在他的工作副本中将文件 Foo.c 改名为 " "Bar.c,或者仅仅是删除了 Foo.c 或它的" "父文件夹。" #. (para) msgid "" "Foo.c has been deleted from working copy, but is marked " "with a tree conflict." msgstr "在工作副本中,Foo.c 被删除了,但是被标记为树冲突。" #. (para) msgid "" "If the conflict results from a rename rather than a delete then Bar." "c is marked as added, but does not contain developer A's " "modifications." msgstr "" "如果冲突是由于更改文件名引起的而不是删除文件引起的,那么 Bar.c 被标记为添加,但是其中却不包括开发人员 A 修改的内容。" #. (para) #. (para) msgid "" "An update of developer B's working copy results in a tree conflict: " "" msgstr "更新开发人员 B 的工作副本会导致树冲突: " #. (para) msgid "" "Developer B now has to choose whether to keep Developer A's changes. In the " "case of a file rename, he can merge the changes to Foo.c " "into the renamed file Bar.c. For simple file or " "directory deletions he can choose to keep the item with Developer A's changes " "and discard the deletion. Or, by marking the conflict as resolved without " "doing anything he effectively discards Developer A's changes." msgstr "" "开发人员 B 现在必须做出选择是否保留开发人员 A 的更改。在更改文件名的案例中,他" "可以将 Foo.c 的更改合并到改名后的文件 Bar.c 中去。对于删除文件或文件夹的案例中,他可以选择保留包含开发人员 A 更" "改内容的项目并放弃删除操作。或什么也不做而直接将冲突标记为已解决,那样他实际上" "丢弃了开发人员 A 的更改。" #. (para) msgid "" "The conflict edit dialog offers to merge changes if it can find the original " "file of the renamed Bar.c. Depending on where the update " "was invoked, it may not be possible to find the source file." msgstr "" "如果 TortoiseSVN 能够找到被改名为 Bar.c 的原始文件,冲突" "编辑对话框将可以合并更改。这取决于在什么地方调用更新操作,它也许不能找到原始文" "件。" #. (title) msgid "Local edit, incoming delete upon update" msgstr "本地更改,当更新时有删除进入" #. (para) msgid "" "Developer A moves Foo.c to Bar.c " "and commits it to the repository." msgstr "" "开发人员 A 将文件 Foo.c 改名为 Bar.c 并将其提交至版本库中。" #. (para) #. (para) msgid "Developer B modifies Foo.c in his working copy." msgstr "开发人员 B 在他的工作副本中修改文件 Foo.c。" #. (para) msgid "Or in the case of a folder move ..." msgstr "或者在一个文件夹改名的案例中..." #. (para) msgid "" "Developer A moves parent folder FooFolder to " "BarFolder and commits it to the repository." msgstr "" "开发人员 A 将父文件夹 FooFolder 改名为 " "BarFolder 并将其提交至版本库中。" #. (para) msgid "" "Bar.c is added to the working copy as a normal file." msgstr "Bar.c 被当作一个正常文件添加到工作副本中。" #. (para) msgid "" "Foo.c is marked as added (with history) and has a tree " "conflict." msgstr "Foo.c 被标记为添加(包括其历史记录)并且产生树冲突。" #. (para) msgid "" "An update of developer B's working copy results in a tree conflict. For a " "simple file conflict: " msgstr "" "更新开发人员 B 的工作副本会导致树冲突。对于一个简单的文件冲突: " #. (para) msgid "" "BarFolder is added to the working copy as a normal " "folder." msgstr "BarFolder 被当作一个正常文件夹添加到工作副本中。" #. (para) msgid "" "FooFolder is marked as added (with history) and has a " "tree conflict." msgstr "" "FooFolder 被标记为添加(包括其历史记录)并且产生树冲突。" #. (para) msgid "Foo.c is marked as modified." msgstr "Foo.c 被标记为已修改。" #. (para) msgid "For a folder conflict: " msgstr "对于一个文件夹冲突: " #. (para) #. (para) msgid "" "Developer B now has to decide whether to go with developer A's reorganisation " "and merge her changes into the corresponding file in the new structure, or " "simply revert A's changes and keep the local file." msgstr "" "开发人员 B 现在需要做出决定是否接受开发人员 A 作出的结构改变并且合并她的更改到" "新结构下适当的文件中,或者直接放弃开发人员 A 的更改并保留本地文件。" #. (para) msgid "" "To merge her local changes with the reshuffle, Developer B must first find " "out to what filename the conflicted file Foo.c was " "renamed/moved in the repository. This can be done by using the log dialog. " "The changes must then be merged by hand as there is currently no way to " "automate or even simplify this process. Once the changes have been ported " "across, the conflicted path is redundant and can be deleted. In this case use " "the Remove button in the conflict editor dialog to clean " "up and mark the conflict as resolved." msgstr "" "要合并她的本机更改到新布局中,开发人员 B 必须先找出冲突的文件 Foo." "c 经过改名/移动后在版本库中的新文件名是什么。可以使用日志对话框来完" "成这个任务。更改必须要手工合并,因为没有办法自动的或者简单的完成此操作。一旦更" "改移植完毕,冲突的路径就是多余的并且可以删除。在此案例中,使用冲突编辑对话框中" "的删除按钮进行清理并将冲突标记为已解决。" #. (para) msgid "" "If Developer B decides that A's changes were wrong then she must choose the " "Keep button in the conflict editor dialog. This marks " "the conflicted file/folder as resolved, but Developer A's changes need to be " "removed by hand. Again the log dialog helps to track down what was moved." msgstr "" "如果开发人员 B 认为 A 的更改是错误的,那么在冲突编辑对话框中她必须选择" "保留按钮。这样就会标记冲突的文件/文件夹为已解决,但是需要" "手工删除开发人员 A 的更改。又是通过日志对话框帮助追踪哪些文件移动了。" #. (title) msgid "Local delete, incoming delete upon update" msgstr "本地删除,当更新时有删除进入" #. (para) msgid "" "Developer A moves Foo.c to Bar.c " "and commits it to the repository" msgstr "" "开发人员 A 将文件 Foo.c 改名为 Bar.c 并将其提交至版本库中。" #. (para) msgid "" "Developer B moves Foo.c to Bix.c" msgstr "" "开发人员 B 将文件 Foo.c 改名为 Bix.c" #. (para) msgid "Bix.c is marked as added with history." msgstr "Bix.c 被标记为添加(包括其历史记录)。" #. (para) msgid "" "Bar.c is added to the working copy with status 'normal'." msgstr "Bar.c 被添加到工作副本中,其状态为‘正常’。" #. (para) msgid "Foo.c is marked as deleted and has a tree conflict." msgstr "Foo.c 被标记为删除并且产生一个树冲突。" #. (para) msgid "" "To resolve this conflict, Developer B has to find out to what filename the " "conflicted file Foo.c was renamed/moved in the " "repository. This can be done by using the log dialog." msgstr "" "要解决这个冲突,开发人员 B 必须找出冲突的文件 Foo.c 经过" "改名/移动后在版本库中的新文件名是什么。可以使用日志对话框来完成这个任务。" #. (para) #. (para) msgid "" "Then developer B has to decide which new filename of Foo.c to keep - the one done by developer A or the rename done by himself." msgstr "" "然后,开发人员 B 需要决定 Foo.c 的新文件名中的哪一个需要" "保留 - 开发人员 A 改的那个还是他自己改的那个。" #. (para) #. (para) msgid "" "After developer B has manually resolved the conflict, the tree conflict has " "to be marked as resolved with the button in the conflict editor dialog." msgstr "" "在开发人员 B 手工解决冲突后,使用冲突编辑对话框中的按钮将树冲突标记为已解决。" #. (title) msgid "Local missing, incoming edit upon merge" msgstr "本地缺少,当合并时有更改进入" #. (para) msgid "" "Developer A working on trunk modifies Foo.c and commits " "it to the repository" msgstr "" "开发人员 A 在主干上工作,修改 Foo.c 并将其提交至版本库中" #. (para) msgid "" "Developer B working on a branch moves Foo.c to " "Bar.c and commits it to the repository" msgstr "" "开发人员 B 在分支上工作,将 Foo.c 改名为 Bar." "c 并将其提交至版本库中" #. (para) msgid "" "Bar.c is already in the working copy with status " "'normal'." msgstr "Bar.c 已经存在于工作副本中,其状态为‘正常’。" #. (para) msgid "Foo.c is marked as missing with a tree conflict." msgstr "Foo.c 被标记为缺少并产生树冲突。" #. (para) #. (para) #. (para) msgid "" "A merge of developer A's trunk changes to developer B's branch working copy " "results in a tree conflict: " msgstr "" "合并开发人员 A 的主干更改到开发人员 B 的分支工作副本会导致树冲突: " "" #. (para) msgid "" "To resolve this conflict, Developer B has to mark the file as resolved in the " "conflict editor dialog, which will remove it from the conflict list. She then " "has to decide whether to copy the missing file Foo.c " "from the repository to the working copy, whether to merge Developer A's " "changes to Foo.c into the renamed Bar.c or whether to ignore the changes by marking the conflict as " "resolved and doing nothing else." msgstr "" "要解决这个冲突,开发人员 B 要在冲突编辑对话框中标记文件为已解决,这样就会将其" "从冲突列表中删除。她接下来需要决定是否将缺少的文件 Foo.c " "从版本库中复制到工作副本中,是否将开发人员 A 的对 Foo.c " "的更改和合并到改名后的 Bar.c 或者是否通过标记冲突为已解决" "来忽略更改什么事也不做。" #. (para) msgid "" "Note that if you copy the missing file from the repository and then mark as " "resolved, your copy will be removed again. You have to resolve the conflict " "first." msgstr "" "注意,如果你将缺少的文件从版本库中复制到工作副本中然后再标记为已解决,你复制下" "来的文件将被再次删除。你必须先解决冲突。" #. (title) msgid "Local edit, incoming delete upon merge" msgstr "本地更改,当合并时有删除进入" #. (para) #. (para) msgid "" "Developer A working on trunk moves Foo.c to " "Bar.c and commits it to the repository" msgstr "" "开发人员 A 在主干上工作,将 Foo.c 改名为 Bar." "c 并将其提交至版本库中" #. (para) msgid "" "Developer B working on a branch modifies Foo.c and " "commits it to the repository." msgstr "" "开发人员 B 在分支上工作,修改 Foo.c 并将其提交至版本库中" #. (para) msgid "" "There is an equivalent case for folder moves, but it is not yet detected in " "Subversion 1.6 ..." msgstr "当文件夹改名时有类似的案例,但是在 Subversion 1.6 中还未被识别..." #. (para) msgid "" "Developer A working on trunk moves parent folder FooFolder to BarFolder and commits it to the repository." msgstr "" "开发人员 A 在主干上工作,将父文件夹 FooFolder 改名为 " "BarFolder 并将其提交至版本库中。" #. (para) msgid "" "Developer B working on a branch modifies Foo.c in her " "working copy." msgstr "" "开发人员 B 在分支上工作,在她的工作副本中修改 Foo.c 。" #. (para) msgid "Bar.c is marked as added." msgstr "Bar.c 被标记为添加。" #. (para) msgid "Foo.c is marked as modified with a tree conflict." msgstr "Foo.c 被标记为修改并产生树冲突。" #. (para) msgid "" "To merge her local changes with the reshuffle, Developer B must first find " "out to what filename the conflicted file Foo.c was " "renamed/moved in the repository. This can be done by using the log dialog for " "the merge source. The conflict editor only shows the log for the working copy " "as it does not know which path was used in the merge, so you will have to " "find that yourself. The changes must then be merged by hand as there is " "currently no way to automate or even simplify this process. Once the changes " "have been ported across, the conflicted path is redundant and can be deleted. " "In this case use the Remove button in the conflict " "editor dialog to clean up and mark the conflict as resolved." msgstr "" "要合并她的本机更改到新布局中,开发人员 B 必须先找出冲突的文件 Foo." "c 经过改名/移动后在版本库中的新文件名是什么。可以通过适用于合并源码" "的日志对话框来完成这个任务。冲突编辑器仅显示工作副本的日志因为它不知道将哪个路" "径的更改合并进来,所以你需要自己找到它。更改必须要手工合并,因为没有办法自动的" "或者简单的完成此操作。一旦更改移植完毕,冲突的路径就是多余的并且可以删除。在此" "案例中,使用冲突编辑对话框中的删除按钮进行清理并将冲突标" "记为已解决。" #. (para) msgid "" "If Developer B decides that A's changes were wrong then she must choose the " "Keep button in the conflict editor dialog. This marks " "the conflicted file/folder as resolved, but Developer A's changes need to be " "removed by hand. Again the log dialog for the merge source helps to track " "down what was moved." msgstr "" "如果开发人员 B 认为 A 的更改是错误的,那么在冲突编辑对话框中她必须选择" "保留按钮。这样就会标记冲突的文件/文件夹为已解决,但是需要" "手工删除开发人员 A 的更改。又是通过日志对话框帮助追踪哪些文件移动了。" #. (title) msgid "Local delete, incoming delete upon merge" msgstr "本地删除,当合并时有删除进入" #. (para) msgid "" "Developer B working on a branch moves Foo.c to " "Bix.c and commits it to the repository" msgstr "" "开发人员 B 工作在分之上,将 Foo.c 改名为 Bix." "c 并将其提交至版本库中" #. (para) msgid "Bix.c is marked with normal (unmodified) status." msgstr "Bix.c 被标记为正常(未修改)状态。" #. (para) msgid "Bar.c is marked as added with history." msgstr "Bar.c 被标记为添加(包括其历史记录)。" #. (para) msgid "Foo.c is marked as missing and has a tree conflict." msgstr "Foo.c 被标记为缺少并且产生树冲突。" #. (para) msgid "" "To resolve this conflict, Developer B has to find out to what filename the " "conflicted file Foo.c was renamed/moved in the " "repository. This can be done by using the log dialog for the merge source. " "The conflict editor only shows the log for the working copy as it does not " "know which path was used in the merge, so you will have to find that yourself." msgstr "" "要解决这个冲突,开发人员 B 必须先找出冲突的文件 Foo.c 经" "过改名/移动后在版本库中的新文件名是什么。可以通过适用于合并源码的日志对话框来" "完成这个任务。冲突编辑器仅显示工作副本的日志因为它不知道将哪个路径的更改合并进" "来,所以你需要自己找到它。" #. (title) msgid "Getting Status Information" msgstr "获得状态信息" #. (primary) #. (primary) msgid "status" msgstr "状态" #. (primary) msgid "view changes" msgstr "查看修改" #. (primary) msgid "working copy status" msgstr "工作副本状态" #. (para) msgid "" "While you are working on your working copy you often need to know which files " "you have changed/added/removed or renamed, or even which files got changed " "and committed by others." msgstr "" "当你在你的工作副本上工作时,你时常需要知道哪些文件你已经修改/增加/删除或改名" "了,或者甚至是哪个文件已经被其他人修改并提交了。" #. (primary) #. (primary) msgid "overlays" msgstr "重载" #. (primary) msgid "icons" msgstr "图标" #. (para) msgid "" "Now that you have checked out a working copy from a Subversion repository you " "can see your files in the windows explorer with changed icons. This is one of " "the reasons why TortoiseSVN is so popular. TortoiseSVN adds a so called " "overlay icon to each file icon which overlaps the original file icon. " "Depending on the Subversion status of the file the overlay icon is different." msgstr "" "现在你已经从 Subversion 版本库中检出了一份工作副本,你可以在资源管理器中看一下" "这些文件的图标有什么变化。这也正是 TortoiseSVN 这么流行的原因之一。" "TortoiseSVN 加入了被称为重载图标的功能重载了原始的文件图标。根据文件的 " "Subversion 状态的不同,重载的图标也不同。" #. (para) msgid "" " A fresh checked out " "working copy has a green checkmark as overlay. That means the Subversion " "status is normal." msgstr "" " 一个新检出的工作副本使用" "绿色的对勾做重载。表示 Subversion 状态正常." #. (para) msgid "" " As soon as you start " "editing a file, the status changes to modified and the " "icon overlay then changes to a red exclamation mark. That way you can easily " "see which files were changed since you last updated your working copy and " "need to be committed." msgstr "" "在你开始编辑一个文件后,状态" "就变成了已修改,而图标重载变成了红色感叹号。通过这种方" "式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。" #. (para) msgid "" " If during an update a " "conflict occurs then the icon changes to a yellow " "exclamation mark." msgstr "" "如果在更新的过程中出现了" "冲突,图标会变成黄色感叹号。" #. (para) msgid "" " If you have set the " "svn:needs-lock property on a file, Subversion makes that " "file read-only until you get a lock on that file. Such files have this " "overlay to indicate that you have to get a lock first before you can edit " "that file." msgstr "" "如果你给一个文件设置了" "svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文" "件锁。具有这个重载图标的文件来表示你必须在编辑之前先得到锁。" #. (para) msgid "" " If you hold a lock on a file, " "and the Subversion status is normal, this icon overlay " "reminds you that you should release the lock if you are not using it to allow " "others to commit their changes to the file." msgstr "" "如果你拥有了一个文件的锁,并且 " "Subversion 状态是正常,这个重载图标就提醒你如果不使用该文" "件的话应该释放锁,允许别人提交对该文件的修改。" #. (para) msgid "" " This icon shows you that " "some files or folders inside the current folder have been scheduled to be " "deleted from version control or a file under version " "control is missing in a folder." msgstr "" "这个图标表示当前文件夹下的某些" "文件或文件夹已经被调度从版本控制中删除,或是该文件夹下某" "个受版本控制的文件丢失了。" #. (para) msgid "" " The plus sign tells you that a " "file or folder has been scheduled to be added to version " "control." msgstr "" "加号告诉你有一个文件或目录已经被" "调度加入版本控制。" #. (para) msgid "" " The bar sign tells you that " "a file or folder is ignored for version control " "purposes. This overlay is optional." msgstr "" "横条告诉你有一个文件或目录被版" "本控制系统所忽略。这个图标重载是可选的。" #. (para) msgid "" " This icon shows files " "and folders which are not under version control, but have not been ignored. " "This overlay is optional." msgstr "" "这个图标说明文件和目录未被" "版本控制,但是也没有被忽略。这个图标重载是可选的。" #. (para) msgid "" "In fact, you may find that not all of these icons are used on your system. " "This is because the number of overlays allowed by Windows is very limited and " "if you are also using an old version of TortoiseCVS, then there are not " "enough overlay slots available. TortoiseSVN tries to be a Good Citizen " "(TM) and limits its use of overlays to give other apps a chance too." msgstr "" "事实上,你会发现并不是所有的图标被你的系统使用。这是由于 Windows 允许的重载图" "标数量很有限,如果你同时使用旧版的 TortoiseCVS,就没有足够的重载可用。" "TortoiseSVN 试图成为一个良好市民(TM),限制自身使用重载图标,为" "别的程序留下机会。" #. (para) msgid "" "Now that there are more Tortoise clients around (TortoiseCVS, " "TortoiseHG, ...) the icon limit becomes a real problem. To work around this, " "the TortoiseSVN project introduced a common shared icon set, loaded as a DLL, " "which can be used by all Tortoise clients. Check with your client provider to " "see if this has been integrated yet :-)" msgstr "" "现在有很多 Tortoise 客户端工具(TortoiseCVS, TortoiseHG, ...)所以图标限制成为一" "个实实在在的问题。为了在这种条件下工作,TortoiseSVN 项目引入了一种通用的共享的" "图标集,以动态链接库的形式加载,可以被所有的 Tortoise 客户端工具所使用。联系你" "的客户端程序提供者确认是否支持这一功能。" #. (para) msgid "" "For a description of how icon overlays correspond to Subversion status and " "other technical details, read ." msgstr "" "要获得图表重载与 Subversion 状态的对应关系,或者其它技术细节,请阅读。" #. (title) msgid "TortoiseSVN Columns In Windows Explorer" msgstr "在 Windows 资源管理器中的 TortoiseSVN 列" #. (primary) msgid "Explorer Columns" msgstr "资源管理器的列" #. (para) msgid "" "The same information which is available from the icon overlays (and much " "more) can be displayed as additional columns in Windows Explorer's Details " "View." msgstr "" "在Windows资源管理器的详细信息视图中,附加列中可以显示与图标重载所表达相同的信" "息(还可以显示更多其他信息)。" #. (para) msgid "" "Simply right click on one of the headings of a column, choose " "More... from the context menu displayed. A dialog " "will appear where you can specify the columns and their order, which is " "displayed in the Detailed View. Scroll down until the entries " "starting with SVN come into view. Check the ones you would like to have " "displayed and close the dialog by pressing OK. The " "columns will be appended to the right of those currently displayed. You can " "reorder them by drag and drop, or resize them, so that they fit your needs." msgstr "" "右键点击列头,从出现的右键菜单中选择其他...。出现一" "个对话框,你可以指定在详细信息视图中要显示的列及其顺序。滚动对" "话框中的条目直到SVN开头的条目出现。在你要显示的条目上打勾,然后点击" "确定按扭关闭对话框。你选择的列就会出现在当前显示的列的右边。你可以" "通过拖放它们来重新排序或是修改列宽度,使它们适合你的需求。" #. (para) msgid "" "The additional columns in the Windows Explorer are not available on Vista, " "since Microsoft decided to not allow such columns for all files anymore but only for specific file types." msgstr "" "Windows 资源管理器中的附加列在 Vista 系统中不可用,因为微软决定除了特定的文件" "类型外,不再允许为所有类型的文件显示这样的列。" #. (para) msgid "" "If you want the current layout to be displayed in all your working copies, " "you may want to make this the default view." msgstr "" "如果你想要当前的布局对你所有的工作副本都有效,你可以考虑把它设成默认视图。" #. (title) msgid "Local and Remote Status" msgstr "本地与远程状态" #. (primary) msgid "modifications" msgstr "修改" #. (title) #. (title) msgid "Check for Modifications" msgstr "检查修改" #. (para) msgid "" " It's often very useful to know which files you have changed " "and also which files got changed and committed by others. That's where the " "command TortoiseSVNCheck For " "Modifications... comes in handy. This dialog will " "show you every file that has changed in any way in your working copy, as well " "as any unversioned files you may have." msgstr "" " 通常知道你修改了哪些文件以及哪些文件已经由另人修改并提交了是" "很有用的。这就是命令TortoiseSVNCheck For Modifications... 的" "用武之地了。这个对话框显示了所有你的工作副本中进行了任何形式的修改的的文件,也" "包括了当前存在的未受控的文件。" #. (para) #, fuzzy msgid "" "If you click on the Check Repository then you can also " "look for changes in the repository. That way you can check before an update " "if there's a possible conflict. You can also update selected files from the " "repository without updating the whole folder. By default, the " "Check Repository button only fetches the remote status " "with the checkout depth of the working copy. If you want to see all files and " "folders in the repository, even those you have not checked out, then you have " "to hold down the Shift key when you click on the " "Check Repository button." msgstr "" "如果你点击检查版本库,那你还可以看到版本库里的改动。这" "样,你就可以在提交之前检查是否有存在冲突的可能。你也可以从版本库中更新选中的文" "件而用不着更新整个文件夹。另外,检查版本库按钮只获取工" "作副本中检出深度部分的远程状态。如果你要查看版本库中所有文件和文件夹,即使你没" "有将它们检出,那么你要在点击检查版本库时按下 " "Shift 键。" #. (para) msgid "Locally modified items." msgstr "本地被修改过的项" #. (para) msgid "" "Added items. Items which have been added with history have a + sign in the Text status column, and a tooltip " "shows where the item was copied from." msgstr "" "增加的项。那些被加入的项在文本状态列中有个+号表示,工具提示(tooltip shows)显示了该项是从哪里复制来的。 where the " "item was copied from." #. (para) msgid "Deleted or missing items." msgstr "删除的或是丢失的项。" #. (para) msgid "" "Items modified locally and in the repository. The changes will be merged on " "update. These may produce conflicts on update." msgstr "" "在本地和版本库中都有被修改过的项。改动将在更新的时候被合并。这种情况" "很可能在更新的时候产生冲突。" #. (para) msgid "" "Items modified locally and deleted in repository, or modified in repository " "and deleted locally. These will produce conflicts on " "update." msgstr "" "在本地被修改过但在版本库中已经被删除的项,或者在版本库中被修改但在本地被删除的" "项。这种情况必将在更新时产生冲突。" #. (para) msgid "Unchanged and unversioned items." msgstr "未修改和未受控的项。" #. (para) msgid "The dialog uses colour coding to highlight the status. " msgstr "对话框使用颜色代码来高亮显示状态。 " #. (para) msgid "" "From the context menu of the dialog you can show a diff of the changes. Check " "the local changes you made using " "Context MenuCompare with Base. Check the changes in the repository made by others " "using Context MenuShow " "Differences as Unified Diff." msgstr "" "在对话框的上下文菜单中你可以显示改变的差异。使用 上下文菜" "单与基础版本比较检查" "所作的本地修改。使用上下文菜单使用标准差异格式显示差异检查版" "本库中别人作的修改。" #. (para) #, fuzzy msgid "" "You can also revert changes in individual files. If you have deleted a file " "accidentally, it will show up as Missing and you can use " "Revert to recover it." msgstr "" "你还可以对单个文件进行还原(revert)。如果你不小心删除了一个文件,在对话框中会显" "示为丢失你可以使用还原来恢复它。" #. (para) msgid "" "Unversioned and ignored files can be sent to the recycle bin from here using " "Context MenuDelete. If you want to delete files permanently (bypassing the recycle " "bin) hold the Shift key while clicking on Delete." msgstr "" "可以使用右键菜单删除将未版本控制的或忽略的文件丢到垃圾箱。如果你想彻底删" "除(不使用垃圾箱),在点击删除时,请按着Shift键。" #. (para) msgid "" "If you want to examine a file in detail, you can drag it from here into " "another application such as a text editor or IDE." msgstr "" "如果你要查询一个文件的详细情况,你可以把它从这里拖到另一个应用程序,比如一个文" "本编辑器或是IDE中。" #. (para) msgid "" "The columns are customizable. If you right click on any " "column header you will see a context menu allowing you to select which " "columns are displayed. You can also change column width by using the drag " "handle which appears when you move the mouse over a column boundary. These " "customizations are preserved, so you will see the same headings next time." msgstr "" "这些列是可定制的。如果你右击任何一列的头部,你就会看到一个上" "下文菜单,允许你选择哪一列要显示。还可以在鼠标移动到列边界时通过拖动把手来改变" "列的宽度。这些定制的内容都会被保留下来,下一次你会见到相同的头部。" #. (para) msgid "" "If you are working on several unrelated tasks at once, you can also group " "files together into changelists. Read for more information." msgstr "" "如果你同时做几个不相关的任务,也可以在修改列表中分组文件。阅读以获得更多信息。" #. (para) #, fuzzy msgid "" "At the bottom of the dialog you can see a summary of the range of repository " "revisions in use in your working copy. These are the commit revisions, not the update revisions; they " "represent the range of revisions where these files were last committed, not " "the revisions to which they have been updated. Note that the revision range " "shown applies only to the items displayed, not to the entire working copy. If " "you want to see that information for the whole working copy you must check " "the Show unmodified files checkbox." msgstr "" "在这个对话框的底部,你可以看到工作副本所用版本库版本的范围概要。这些是 " "提交版本,不是更新版本;它们是这些文件最" "后提交的版本范围,不是已经更新的版本。注意显示的版本范围针对的是显示的项目,不" "是整个工作副本。如果你想察看整个工作副本的信息,必须选中检查框显示未" "修改的文件。" #. (para) msgid "" "If you want a flat view of your working copy, i.e. showing all files and " "folders at every level of the folder hierarchy, then the Check for " "Modifications dialog is the easiest way to achieve that. Just " "check the Show unmodified files checkbox to show all " "files in your working copy." msgstr "" "如果你需要工作目录的全面视图,也就是所有文件和文件夹都同时显示,以便方便的使用" "检查修改。只要选择现实未修改文件检查" "栏,显示工作目录中的所有文件即可。" #. (title) msgid "Viewing Diffs" msgstr "查看差别" #. (primary) msgid "diffing" msgstr "比较" #. (para) msgid "" "Often you want to look inside your files, to have a look at what you've " "changed. You can accomplish this by selecting a file which has changed, and " "selecting Diff from TortoiseSVN's context menu. " "This starts the external diff-viewer, which will then compare the current " "file with the pristine copy (BASE revision), which was " "stored after the last checkout or update." msgstr "" "通常你想要深入文件中了解你修改了什么。要达到这个目的,你可以选中这个文件,然后" "在TortoiseSVN的右键菜单中选择比较。这个操作会启动一" "个外部的差别检查程序,由它来比较当前文件与上一次检出或更新后的原始的副本" "(基础版本)。" #. (para) msgid "" "Even when not inside a working copy or when you have multiple versions of the " "file lying around, you can still display diffs:" msgstr "" "即使你不是在一个工作副本中工作或者你有多个版本的文件,你都可以按以下方法来进行" "比较: " #. (para) msgid "" "Select the two files you want to compare in explorer (e.g. using " "Ctrl and the mouse) and choose Diff from TortoiseSVN's context menu. The file clicked last (the one " "with the focus, i.e. the dotted rectangle) will be regarded as the later one." msgstr "" "选择你要比较的两个文件(比如,你可以使用Ctrl 键加鼠标),然后从" "TortoiseSVN的右键菜单中选择比较。最后一个被鼠标点中" "的文件(具有焦点的文件,比如有虚线框的文件具有焦点),将作为被比较文件的后一个。" #. (primary) msgid "changelist" msgstr "修改列表" #. (para) msgid "" "In an ideal world, you only ever work on one thing at a time, and your " "working copy contains only one set of logical changes. OK, back to reality. " "It often happens that you have to work on several unrelated tasks at once, " "and when you look in the commit dialog, all the changes are mixed in " "together. The changelist feature helps you group files " "together, making it easier to see what you are doing. Of course this can only " "work if the changes do not overlap. If two different tasks affect the same " "file, there is no way to separate the changes." msgstr "" "理想情况下,你任何时候都只做一件事,你的工作副本只包含一个逻辑修改集合。很好," "回到现实。你经常会同时做几件不相关的事,当你察看提交对话框时,所有修改混到一" "起。修改列表特性帮助你分组,让你容易看到正在做什么。当" "然它只能在修改不重合的时候工作。如果两个不同的任务影响到同一个文件,没有办法隔" "离修改。" #. (para) msgid "" "The changelist feature in TortoiseSVN is only available in Windows XP and " "later, as it depends on a shell capability which is not present in Windows " "2000. Sorry, but Win2K is really quite old now, so please don't complain." msgstr "" "TortoiseSVN 中的修改列表依赖一个不存在于 Windows 2000 的外壳特性,所以它只能用" "于 Windows XP 或更新的系统。抱歉,但是现在 Windows 2000 真的很古老了,请不要抱" "怨。" #. (para) msgid "" "You can see changelists in several places, but the most important ones are " "the commit dialog and the check-for-modifications dialog. Let's start in the " "check-for-modifications dialog after you have worked on several features and " "many files. When you first open the dialog, all the changed files are listed " "together. Suppose you now want to organise things and group those files " "according to feature." msgstr "" "在很多地方可以看到修改列表,但是最常见的是提交对话框和检查修改对话框。让我们从" "检查修改对话框开始--在你完成了多个特性和很多文件后的检查修改对话框。当你第一次" "打开对话框,所有的修改过的文件被列在一起。假设你现在想要组织任务并且按照特性将" "这些文件分组。" #. (para) msgid "" "Select one or more files and use Context MenuMove to changelist to add an " "item to a changelist. Initially there will be no changelists, so the first " "time you do this you will create a new changelist. Give it name which " "describes what you are using it for, and click OK. The " "dialog will now change to show groups of items." msgstr "" "选择一个或多个文件并且使用右键菜单" "移动到修改列表可以增加一个项目到修改列表。最初没有" "修改列表,所以你第一次做的时候,会创建一个新的修改列表。给出一个能描述它的作用" "的名称,然后点击确定。提交对话框会改变为显示项目分组。" #. (para) msgid "" "Once you have created a changelist you can drag and drop items into it, " "either from another changelist, or from Windows Explorer. Dragging from " "Explorer can be useful as it allows you to add items to a changelist before " "the file is modified. You could do that from the check-for-modifications " "dialog, but only by displaying all unmodified files." msgstr "" "当你创建好修改列表后,你就可以将文件拖放进去,既可以从其它修改表中拖过去,也可" "以从 Windows 资源管理中拖过去。将一个未被修改的文件加入修改列表时,从 Windows " "资源管理器拖拽就很有用。你可以在检查修改对话框中这样做,但要显示未修改的文件。" #. (title) msgid "Commit dialog with Changelists" msgstr "带有修改列表的提交对话框" #. (para) msgid "" " In the commit dialog you can see those same files, grouped " "by changelist. Apart from giving an immediate visual indication of groupings, " "you can also use the group headings to select which files to commit." msgstr "" " 在提交对话框中可以看到被修改列表分组的那文件。除了分组可以直" "接指示之外,你也可以使用组头选择提交哪些文件。" #. (para) msgid "" "On XP, there is a context menu when you right click on a group heading which " "gives you the choice to check or uncheck all group entries. On Vista however " "the context menu is not necessary. Click on the group header to select all " "entries, then check one of the selected entries to check all." msgstr "" "在 XP 中,当你右键点击组头的时候,会有一个右键菜单让你选定或取消选定全组的条" "目。但在 Wista 中右键菜单不是必需的。点击组头可以选择全部条目,然后点击被选中" "的任一个条目就可以选中全组。" #. (para) msgid "" "TortoiseSVN reserves one changelist name for its own use, namely " "ignore-on-commit. This is used to mark versioned files " "which you almost never want to commit even though they have local changes. " "This feature is described in ." msgstr "" "TortoiseSVN 保留了一个它自己使用的修改列表名称--ignore-on-commit。这个列表用于标记某些版本控制的文件,它们在本地被修改你却不打算提交他" "们。这个特性在 中有描述。" #. (para) msgid "" "When you commit files belonging to a changelist then normally you would " "expect that the changelist membership is no longer needed. So by default, " "files are removed from changelists automatically on commit. If you wish to " "retain the file in its changelist, use the Keep changelists checkbox at the bottom of the commit dialog." msgstr "" "当提交属于修改列表的文件后,通常情况下用户不再需要修改列表的成员关系。所以在默" "认情况下,当提交时文件会从修改列表中除去。如果你希望文件被保留在更改列表中,选" "中提交对话框底部的 保持修改列表。" #. (para) #, fuzzy msgid "" "Changelists are purely a local client feature. Creating and removing " "changelists will not affect the repository, nor anyone else's working copy. " "They are simply a convenient way for you to organise your files." msgstr "" "修改列表是纯本地客户端特性。创建和删除修改列表不会影响到版本库,或任何其它客户" "端。" #. (title) msgid "Revision Log Dialog" msgstr "版本日志对话框" #. (primary) msgid "log" msgstr "日志" #. (primary) msgid "history" msgstr "历史" #. (primary) msgid "commit messages" msgstr "提交信息" #. (primary) msgid "log messages" msgstr "日志信息" #. (para) msgid "" "For every change you make and commit, you should provide a log message for " "that change. That way you can later find out what changes you made and why, " "and you have a detailed log for your development process." msgstr "" "对于每次进行修改和提交,你应该有针对性地留下日志信息。这样,你就可以在以后方便" "地看到你都做了什么,为什么这么做。当然这么做还是你拥有了开发过程的详细日志。" #. (para) msgid "" "The top pane shows a list of revisions where changes to the file/folder have " "been committed. This summary includes the date and time, the person who " "committed the revision and the start of the log message." msgstr "" "最上方的面板显示了版本的列表。这其中包含了日期和时间,以及提交的用户和日志信息" "开头的部分内容。" #. (para) msgid "" "Lines shown in blue indicate that something has been copied to this " "development line (perhaps from a branch)." msgstr "" "以蓝色显示的行表示某些内容被复制到该开发版本中(可能是从一个分支中复制而来)。" #. (para) msgid "The middle pane shows the full log message for the selected revision." msgstr "中间的面板显示了被选中的版本的完整的日志信息。" #. (para) msgid "" "The bottom pane shows a list of all files and folders that were changed as " "part of the selected revision." msgstr "最下面的面板显示了被选中版本中都对哪里文件和文件夹进行了修改。" #. (para) msgid "" "The Revision Log Dialog retrieves all those log messages and shows them to " "you. The display is divided into 3 panes. But it does much " "more than that - it provides context menu commands which you can use to get " "even more information about the project history." msgstr "" "版本日志对话框可以获取所有的日志信息,并将其显示出来。对话框的视图分成3个面" "板。当然,对话框的作用不止于此——它提供了右键菜单,通过它可以获" "取更多的项目历史信息。" #. (title) msgid "Invoking the Revision Log Dialog" msgstr "调用版本日志对话框" #. (title) msgid "The Revision Log Dialog" msgstr "版本日志对话框" #. (para) msgid "From the TortoiseSVN context submenu" msgstr "从右键菜单的TortoiseSVN子菜单中调用" #. (para) msgid "From the property page" msgstr "从属性页中调用" #. (para) msgid "" "From the Progress dialog after an update has finished. Then the Log dialog " "only shows those revisions which were changed since your last update" msgstr "" "在更新结束后,从进度对话框中调用。在这里,日志对话框只显示你上一次更新以来的版" "本变化。" #. (para) msgid "" " There are several places from where you can show the Log " "dialog: " msgstr "有几种途径可以调出日志对话框: " #. (para) msgid "" "If the repository is unavailable you will see the Want to go " "offline? dialog, described in ." msgstr "" "如果版本库不可用,你将会看到 要离线? 对话框,在 中有详细描述。" #. (title) msgid "Revision Log Actions" msgstr "版本日志动作" #. (para) msgid "" "The top pane has an Actions column containing icons that " "summarize what has been done in that revision. There are four different " "icons, each shown in its own column." msgstr "" "顶部面板有个动作列,包含了此版本的动作概要图标。有四个不" "同的图标,每个都在自己的列显示。" #. (para) msgid "" " If a revision " "modified a file or directory, the modified icon is shown " "in the first column." msgstr "" " 如果某个版本修改了文件" "或目录,已修改 图表就会在首列显示。" #. (para) msgid "" " If a revision added a " "file or directory, the added icon is shown in the second " "column." msgstr "" " 如果某个版本增加了文件或" "目录,已增加 图表就会在第二列显示。" #. (para) msgid "" " If a revision deleted " "a file or directory, the deleted icon is shown in the " "third column." msgstr "" " 如果某个版本删除了文件" "或目录,已删除 图表就会在第三列显示。" #. (para) msgid "" " If a revision " "replaced a file or directory, the replaced icon is shown " "in the fourth column." msgstr "" " 如果某个版本替换了文件" "或目录,已替换 图标就会在第四列显示。" #. (title) msgid "Getting Additional Information" msgstr "获得更多信息" #. (title) msgid "The Revision Log Dialog Top Pane with Context Menu" msgstr "版本日志对话框的顶部面板的右键菜单" #. (term) msgid "Compare with working copy" msgstr "与工作副本比较" #. (para) msgid "" "Compare the selected revision with your working copy. The default Diff-Tool " "is TortoiseMerge which is supplied with TortoiseSVN. If the log dialog is for " "a folder, this will show you a list of changed files, and allow you to review " "the changes made to each file individually." msgstr "" "将你的工作版本与选中的版本进行比较。默认的比较工具是与 TortoiseSNV 一同发布的 " "TortoiseMerge,如果日志对话框是针对文件夹的,那么就会出现一个被修改的文件的列" "表,你可以单独地查看每个文件所做的修改。" #. (term) msgid "Compare and blame with working BASE" msgstr "与工作基础版本比较并追溯" #. (para) msgid "" "Blame the selected revision, and the file in your working BASE and compare " "the blame reports using a visual diff tool. Read for more detail. (files only)." msgstr "" "追溯选中的版本,和你的工作基础文件,使用可视化差异工具比较追溯报告。参阅 " " 以获得更多信息(仅对于文件)。" #. (term) msgid "Show changes as unified diff" msgstr "以标准差异文件显示改变" #. (para) msgid "" "View the changes made in the selected revision as a Unified-Diff file (GNU " "patch format). This shows only the differences with a few lines of context. " "It is harder to read than a visual file compare, but will show all file " "changes together in a compact format." msgstr "" "将选中的版本作为单一差异文件(GNU补丁格式)查看。相对于可视化的文件比较器,它更" "难阅读,但它将所有的变化显示在一个格式更为紧凑的文件中。" #. (term) #, fuzzy msgid "Compare with previous revision" msgstr "与前一版本比较差异" #. (para) msgid "" "Compare the selected revision with the previous revision. This works in a " "similar manner to comparing with your working copy. For folders this option " "will first show the changed files dialog allowing you to select files to " "compare." msgstr "" "比较选中的版本和以前版本。它与比较工作副本类似。对于文件夹,这个选项首先会显示" "已修改的文件对话框让你选择要比较的文件。" #. (term) msgid "Compare and blame with previous revision" msgstr "与前一版本比较并追溯" #. (para) msgid "" "Show the changed files dialog allowing you to select files. Blame the " "selected revision, and the previous revision, and compare the results using a " "visual diff tool. (folders only)." msgstr "" "显示已修改的文件对话框,让你选择文件。追溯选中的版本和旧版本,用可视化差异工具" "比较结果(仅对于文件夹)。" #. (term) #. (term) msgid "Save revision to..." msgstr "保存版本至..." #. (para) msgid "" "Save the selected revision to a file so you have an older version of that " "file. (files only)." msgstr "将选中的版本保存到文件,你可以得到一份该文件的旧版本(仅对于文件)。" #. (term) #. (term) msgid "Open / Open with..." msgstr "打开 / 打开方式..." #. (para) msgid "" "Open the selected file, either with the default viewer for that file type, or " "with a program you choose. (files only)." msgstr "用此文件类型的默认查看器,或你指定的程序打开选中的文件(仅对于文件)。" #. (term) #. (term) msgid "Blame..." msgstr "追溯..." #. (para) msgid "Blame the file up to the selected revision. (files only)." msgstr "追溯文件直到选中的版本(仅对于文件)。" #. (term) msgid "Browse repository" msgstr "浏览版本库" #. (para) msgid "" "Open the repository browser to examine the selected file or folder in the " "repository as it was at the selected revision." msgstr "打开版本库浏览器,基于选中的版本,在版本库中检查选中的文件或目录。" #. (term) msgid "Create branch/tag from revision" msgstr "从版本创建分支/标记" #. (para) msgid "" "Create a branch or tag from a selected revision. This is useful e.g. if you " "forgot to create a tag and already committed some changes which weren't " "supposed to get into that release." msgstr "" "从选中的版本建立一个分支/标记。这个选项很有用。比如: 如果你忘记建立标记,并且" "提交了某些你不想使其进入发行版的修改。" #. (term) msgid "Update item to revision" msgstr "更新项目至版本" #. (para) msgid "" "Update your working copy to the selected revision. Useful if you want to have " "your working copy reflect a time in the past, or if there have been further " "commits to the repository and you want to update your working copy one step " "at a time. It is best to update a whole directory in your working copy, not " "just one file, otherwise your working copy could be inconsistent." msgstr "" "将你的工作副本更新到选中的版本。如果你想要你的工作副本折返到过去的某个时间,或" "者在版本库中有一系列提交而你想每次只更新工作副本一小步,那这个功能就很好用。你" "最好是更新工作副本的整个目录而不是单一某个文件,因为如果只更新某个文件,否则你" "的工作副本就可能不一致。" #. (para) msgid "" "If you want to undo an earlier change permanently, use Revert to " "this revision instead." msgstr "如果你想要永久撤销先前的更改,使用 复原到此版本。" #. (term) msgid "Revert to this revision" msgstr "复原到此版本" #. (para) msgid "" "Revert to an earlier revision. If you have made several changes, and then " "decide that you really want to go back to how things were in revision N, this " "is the command you need. The changes are undone in your working copy so this " "operation does not affect the repository until you " "commit the changes. Note that this will undo all changes " "made after the selected revision, replacing the file/folder with the earlier " "version." msgstr "" "恢复到某个以前的版本。如果你做了多处修改,然后决定要返回到版本 N,你就可以使用" "这个命令。恢复的修改位于你的工作副本,在你提交之前,并不会影响版本库。注意,这将会丢弃从那个版本以来的所有" "修改,使用选中的版本来替换文件/文件夹。" #. (para) #. (para) msgid "" "If your working copy is in an unmodified state, after you perform this action " "your working copy will show as modified. If you already have local changes, " "this command will merge the undo changes into your " "working copy." msgstr "" "如果你的工作副本处于未修改的状态,在执行此操作后,工作副本将会显示为已修改。如" "果你已经进行了本地修改,这个命令将会把撤销的改变合并至你" "的工作副本中。" #. (para) msgid "" "What is happening internally is that Subversion performs a reverse merge of " "all the changes made after the selected revision, undoing the effect of those " "previous commits." msgstr "" "内部的动作是 Subversion 对选中版本之后的修改内容执行了反向合并,撤销这些先前提" "交产生的影响。" #. (para) msgid "" "If after performing this action you decide that you want to undo " "the undo and get your working copy back to its previous unmodified " "state, you should use TortoiseSVNRevert from within Windows " "Explorer, which will discard the local modifications made by this reverse " "merge action." msgstr "" "如果在执行这个动作后你察觉到你需要撤销这次撤销并且让工作" "副本返回到先前没有修改的状态,你应该在 Windows 资源管理器中使用 " "TortoiseSVNSVN 还原, 这个命令将会丢弃本次撤销动作带来的修改。" #. (para) msgid "" "If you simply want to see what a file or folder looked like at an earlier " "revision, use Update to revision or Save " "revision as... instead." msgstr "" "如果你只是想看看某个文件或者文件夹在先前的版本是什么样子,使用 更新" "至版本保存版本为... 功能替代此操作。" #. (term) #. (term) msgid "Revert changes from this revision" msgstr "复原此版本作出的修改" #. (para) msgid "" "Undo changes from which were made in the selected revision. The changes are " "undone in your working copy so this operation does not " "affect the repository at all! Note that this will undo the changes made in " "that revision only; it does not replace your working copy with the entire " "file at the earlier revision. This is very useful for undoing an earlier " "change when other unrelated changes have been made since." msgstr "" "还原选中版本所做的修改。还原的内容只在你的工作副本中,所以此操作完全" "不会影响版本库!要注意的是,这个操作仅仅还原该版本中的修改。不是将" "整个文件替换成选中的那个版本。它对于已经做过其它无关修改的还原早期修改非常有" "用。" #. (para) msgid "" "What is happening internally is that Subversion performs a reverse merge of " "that one revision, undoing its effect from a previous commit." msgstr "" "内部的动作是 Subversion 对这个版本的修改内容执行了反向合并,撤销先前提交产生的" "影响。" #. (para) msgid "" "You can undo the undo as described above in " "Revert to this revision." msgstr "" "你可以使用上文复原到此版本中描述的撤销这次撤销" "。" #. (term) msgid "Merge revision to..." msgstr "合并版本到..." #. (para) msgid "" "Merge the selected revision(s) into a different working copy. A folder " "selection dialog allows you to choose the working copy to merge into, but " "after that there is no confirmation dialog, nor any opportunity to try a test " "merge. It is a good idea to merge into an unmodified working copy so that you " "can revert the changes if it doesn't work out! This is a useful feature if " "you want to merge selected revisions from one branch to another." msgstr "" "合并选中的版本到不同的工作副本。可以通过文件夹选择对话框来确定合并到哪一个工作" "副本中,但是此操作没有冲突对话框,也没有尝试测试合并的机会。合并到未修改的工作" "副本是一个好主意,这样当合并不成功时你可以还原工作副本。当你想要将某个分支上选" "中的版本合并至其他分支时,这个功能很有用。" #. (term) msgid "Checkout..." msgstr "检出..." #. (para) msgid "" "Make a fresh checkout of the selected folder at the selected revision. This " "brings up a dialog for you to confirm the URL and revision, and select a " "location for the checkout." msgstr "" "检出你选择的目录的选中版本,创建一个全新副本。它弹出对话框,让你确认URL和版" "本,并且选择保存的位置。" #. (term) msgid "Export..." msgstr "导出..." #. (para) msgid "" "Export the selected file/folder at the selected revision. This brings up a " "dialog for you to confirm the URL and revision, and select a location for the " "export." msgstr "" "导出选择的文件/目录的选中版本。它弹出对话框,让你确认URL和版本,选择导出位置。" #. (term) msgid "Edit author / log message" msgstr "编辑作者 / 日志信息" #. (para) msgid "" "Edit the log message or author attached to a previous commit. Read to find out how this works." msgstr "" "编辑之前提交时的日志信息或是作者。请阅读,了解其工作原理。" #. (term) msgid "Show revision properties" msgstr "显示版本属性" #. (para) msgid "" "View and edit any revision property, not just log message and author. Refer " "to ." msgstr "" "查看和编辑任何版本属性,不仅仅是日志信息和作者。参看 。" #. (term) #. (term) msgid "Copy to clipboard" msgstr "复制到剪贴板" #. (para) msgid "" "Copy the log details of the selected revisions to the clipboard. This will " "copy the revision number, author, date, log message and the list of changed " "items for each revision." msgstr "" "将选中版本的详细日志信息复制到剪贴板。它会复制版本号,作者,日期,日志信息,以" "及每个版本的改变项目列表。" #. (term) #. (term) msgid "Search log messages..." msgstr "查找日志信息..." #. (para) msgid "" "Search log messages for the text you enter. This searches the log messages " "that you entered and also the action summaries created by Subversion (shown " "in the bottom pane). The search is not case sensitive." msgstr "" "在日志信息中搜索你输入的的文字。这个操作搜索日志信息,也搜索由Subversion建立的" "提交行为总结(最底部的面板中的内容)。搜索大小写无关。" #. (para) msgid "" " The top pane of the Log dialog has a context menu that " "allows you to access much more information. Some of these menu entries appear " "only when the log is shown for a file, and some only when the log is shown " "for a folder. " msgstr "" " 日志对话框的顶部面板有一个右键菜单,通过此菜单你可以获得更多" "的信息。这些菜单条目中的有些内容只会在显示文件日志时出现,有些内容只会在显示文" "件夹日志时出现。 " #. (title) msgid "Top Pane Context Menu for 2 Selected Revisions" msgstr "选中两个版本的顶部面板的右键菜单" #. (term) msgid "Compare revisions" msgstr "比较版本差异" #. (para) msgid "" "Compare the two selected revisions using a visual difference tool. The " "default Diff-Tool is TortoiseMerge which is supplied with TortoiseSVN." msgstr "" "使用可视化差异比较工作比较两个选中的版本。默认的比较工作是与TortoiseSVN一起提" "供的TortoiseMerge。" #. (para) msgid "" "If you select this option for a folder, a further dialog pops up listing the " "changed files and offering you further diff options. Read more about the " "Compare Revisions dialog in ." msgstr "" "如果你是针对文件夹选中这个选项,则会弹出一个对话框列出修改过的文件,提供了更多" "的差异比较选项。请参考比较版本对话框获得详情: 。" #. (term) msgid "Blame revisions" msgstr "追溯版本" #. (para) msgid "" "Blame the two revisions and compare the blame reports using a visual " "difference tool. Read for more " "detail." msgstr "" "追溯两个版本,并使用可视化差异工具显示差异。详情请参考 。" #. (term) msgid "Show differences as unified diff" msgstr "以标准差异文件显示修改" #. (para) msgid "" "View the differences between the two selected revisions as a Unified-Diff " "file. This works for files and folders." msgstr "使用单一差异文件显示差异。这对文件和文件夹都有效。" #. (para) msgid "Copy log messages to clipboard as described above." msgstr "如前所述将日志消息复制到剪贴板。" #. (para) msgid "Search log messages as described above." msgstr "如前所述可以搜索日志消息。" #. (para) msgid "" " If you select two revisions at once (using the usual " "Ctrl-modifier), the context menu changes and gives you fewer " "options: " msgstr "" "如果你使用Ctrl组合键一次选中了两个版本,右键" "菜单有所改变: " #. (para) msgid "" "If you select two or more revisions (using the usual Ctrl or " "Shift modifiers), the context menu will include an entry to " "Revert all changes which were made in the selected revisions. This is the " "easiest way to rollback a group of revisions in one go." msgstr "" "如果你用 CtrlShift 组合键选择了两个或多" "个版本,右键菜单将有一个选项,可以让你还原这些选中的版本中的修改。这是一次性还" "原一组版本中修改的最简方法。" #. (para) msgid "" "You can also choose to merge the selected revisions to another working copy, " "as described above." msgstr "你也可以合并选中的版本到别的工作副本,就像上面描述的那样。" #. (para) msgid "" "If all selected revisions have the same author, you can edit the author of " "all those revisions in one go." msgstr "如果所有选中的版本作者是相同的,你可以同时修改这些版本的作者。" #. (title) msgid "The Log Dialog Bottom Pane with Context Menu" msgstr "日志对话框的底部面板的右键菜单" #. (term) msgid "Show changes" msgstr "显示改变" #. (para) msgid "" "Show changes made in the selected revision for the selected file. This " "context menu is only available for files shown as modified." msgstr "" "显示选中版本中的选中文件的改变。这个菜单条目只对显示为已修改的文件有效。" #. (term) msgid "Blame changes" msgstr "追溯改变" #. (para) msgid "" "Blame the selected revision and the previous revision for the selected file, " "and compare the blame reports using a visual diff tool. Read for more detail." msgstr "" "追溯选中文件的选中版本与前一个版本,使用可视化差异工具显示差异。详情请参阅" " 。" #. (term) msgid "Show as unified diff" msgstr "以标准差异格式显示改变" #. (para) msgid "" "Show file changes in unified diff format. This context menu is only available " "for files shown as modified." msgstr "" "以标准差异格式显示改变。这个菜单条目只对显示为已修改的文件" "有效。" #. (para) #. (para) msgid "" "Open the selected file, either with the default viewer for that file type, or " "with a program you choose." msgstr "用默认查看器或你指定的程序打开选中文件的选中版本。" #. (para) msgid "" "Opens the Blame dialog, allowing you to blame up to the selected revision." msgstr "打开追溯对话框,你可以追溯到选中的版本。" #. (para) msgid "Revert the changes made to the selected file in that revision." msgstr "还原选中文件的选中版本所作的变更。" #. (term) msgid "Show properties" msgstr "显示属性" #. (para) msgid "View the Subversion properties for the selected item." msgstr "查看选中项的Subversion属性。" #. (term) msgid "Show log" msgstr "显示日志" #. (para) msgid "Show the revision log for the selected single file." msgstr "显示选中的单个文件的版本日志。" #. (term) msgid "Get merge logs" msgstr "取得合并日志" #. (para) msgid "" "Show the revision log for the selected single file, including merged changes. " "Find out more in ." msgstr "" "显示被选中的单个文件的版本日志,包括合并修改。在 中查看更多信息。" #. (para) msgid "" "Save the selected revision to a file so you have an older version of that " "file." msgstr "将选中的版本保存成文件,你可以得到一份该文件的旧版本。" #. (para) msgid "" " The bottom pane of the Log dialog also has a context menu " "that allows you to " msgstr "" " 日志对话框的底部面板也有右键菜单,你可以: " #. (para) msgid "" "You may notice that sometimes we refer to changes and other times to " "differences. What's the difference?" msgstr "你可能会注意到,我们有时候说改变,有时候说差异。它们的区别在哪儿?" #. (para) msgid "" "Subversion uses revision numbers to mean 2 different things. A revision " "generally represents the state of the repository at a point in time, but it " "can also be used to represent the changeset which created that revision, eg. " "Done in r1234 means that the changes committed in r1234 " "implement feature X. To make it clearer which sense is being used, we use two " "different terms." msgstr "" "Subversion 使用版本号表达两个意思。版本号通常意味着版本库在那个时间的状态,也" "用来表达那个版本创建的结果集,例如 r1234 所做 意味着 r1234 版本" "提交的改变实现了特性 X。为了能更清晰的知道使用了哪个语义,我们使用两个不同的术" "语。" #. (para) msgid "" "If you select two revisions N and M, the context menu will offer to show the " "difference between those two revisions. In Subversion " "terms this is diff -r M:N." msgstr "" "如果你选择了两个版本 N 和 M,上下文菜单会显示这两个版本的差异。用 Subversion 术语说,就是diff -r M:N。" #. (para) msgid "" "If you select a single revision N, the context menu will offer to show the " "changes made in that revision. In Subversion terms this " "is diff -r N-1:N or diff -c N." msgstr "" "如果你选择了一个版本 N,上下文菜单会显示这个版本的改变。" "用 Subversion 术语说,就是diff -r N-1:Ndiff -" "c N。" #. (para) msgid "" "The bottom pane shows the files changed in all selected revisions, so the " "context menu always offers to show changes." msgstr "" "底部面板显示在所有选中版本中被修改的文件,所以右键菜单通常会提供显示" "改变。" #. (title) msgid "Getting more log messages" msgstr "获取更多的日志信息" #. (para) msgid "" "For a large repository there may be hundreds or even thousands of changes and " "fetching them all could take a long time. Normally you are only interested in " "the more recent changes. By default, the number of log messages fetched is " "limited to 100, but you can change this value in " "TortoiseSVNSettings ()," msgstr "" "对于一个大的库,可能存在几百上千个改动,全部得到它们可能要花上很久的时间。通常" "你只关心最近的修改。默认情况下,日志消息限制只获取100条,但你可以在" "TortoiseSVN设置中修改这个值 ()," #. (para) msgid "" "When the Stop on copy/rename box is checked, Show Log " "will stop at the point that the selected file or folder was copied from " "somewhere else within the repository. This can be useful when looking at " "branches (or tags) as it stops at the root of that branch, and gives a quick " "indication of changes made in that branch only." msgstr "" "当复制/重命名时停止复选框被选中时, 如果选中的文件或文件" "夹是从版本库中的其他地方复制而来的,显示日志将停止在该点。这对于查看分支(或标" "记)时很有用,因为它会停在分支的根节点上,可以快速查看该分支的修改。" #. (para) msgid "" "Normally you will want to leave this option unchecked. TortoiseSVN remembers " "the state of the checkbox, so it will respect your preference." msgstr "一般情况下你可以不要勾选它。 TortoiseSVN会记住它的状态,以改进性能。" #. (para) msgid "" "When the Show Log dialog is invoked from within the Merge dialog, the box is " "always checked by default. This is because merging is most often looking at " "changes on branches, and going back beyond the root of the branch does not " "make sense in that instance." msgstr "" "如果你在从合并对话框中调用的显示日志对话框,那么这个复选框默认将总是选中的。这" "是由于合并通常都是查看分支中的修改, 获取分支的根之前的日志在这种情况下通常没" "有什么意义。" #. (para) msgid "" "Note that Subversion currently implements renaming as a copy/delete pair, so " "renaming a file or folder will also cause the log display to stop if this " "option is checked." msgstr "" "注意,Subversion当前是用复制/删除来实现重命名的,所以重命名一个文件或文件夹也" "会造成日志显示停止(如果选择了复制/重命名时停止)在该点。" #. (para) msgid "" "The Log dialog does not always show all changes ever made for a number of " "reasons: " msgstr "" "日志对话框并不总是显示所有曾经的修改,日志不显示的可能原因如下: " #. (para) msgid "" "If you want to see more log messages, click the Next 100 to retrieve the next 100 log messages. You can repeat this as many " "times as needed." msgstr "" "如果你要查看更多的日志信息,点击下100个,以获取下100个" "日志信息。如果有需要你可以多次重复这个操作。" #. (para) msgid "" "Next to this button there is a multi-function button which remembers the last " "option you used it for. Click on the arrow to see the other options offered." msgstr "" "这个按钮旁边的是一个多功能按钮,它可以记住上一次你要它进行的操作。点击它上面的" "箭头,可以看到更多的选项。" #. (para) msgid "" "Use Show Range ... if you want to view a specific " "range of revisions. A dialog will then prompt you to enter the start and end " "revision." msgstr "" "如果你要查询指定范围的版本,使用显示范围 ...。这会出现" "一个对话框,要求输入开始和结束的版本。" #. (para) msgid "" "Use Show All if you want to see all log messages from HEAD right back to revision 1." msgstr "" "如果你要查询从最新版本直到版本1的所有的日志消息,使用" "显示所有。" #. (title) msgid "Current Working Copy Revision" msgstr "当前工作副本的版本" #. (para) msgid "" "Because the log dialog shows you the log from HEAD, not from the current " "working copy revision, it often happens that there are log messages shown for " "content which has not yet been updated in your working copy. To help make " "this clearer, the commit message which corresponds to the revision you have " "in your working copy is shown in bold." msgstr "" "因为日志对话框从最新版本开始显示日志,而不是从当前工作副本的版本开始。还未被更" "新至工作副本中的版本的日志消息也经常会显示出来。为了使其更清楚,符合当前工作副" "本版本的提交信息使用粗体显示。" #. (para) msgid "" "When you show the log for a folder the revision highlighted is the highest " "revision found anywhere within that folder, which requires a crawl of the " "working copy. This can be a slow operation for large working copies, and the " "log messages are not displayed until the crawl completes. If you want to " "disable or limit this feature you need to set a registry key HKCU" "\\Software\\TortoiseSVN\\RecursiveLogRev as described in ." msgstr "" #. (title) msgid "Merge Tracking Features" msgstr "合并跟踪特性" #. (primary) msgid "merge tracking log" msgstr "合并跟踪记录" #. (para) msgid "" "Subversion 1.5 and later keeps a record of merges using properties. This " "allows us to get a more detailed history of merged changes. For example, if " "you develop a new feature on a branch and then merge that branch back to " "trunk, the feature development will show up on the trunk log as a single " "commit for the merge, even though there may have been 1000 commits during " "branch development." msgstr "" "Subversion 1.5 及以后的版本使用属性保留合并记录。关于已合并的修改,我们可以获" "得更详细的历史。例如,你在分支中开发了一个新特性并且将此分支合并到主干,此特性" "开发将会以一次合并提交的形式显示在主干的日志中,即使在分支开发中可能有 1000 次" "提交。" #. (title) msgid "The Log Dialog Showing Merge Tracking Revisions" msgstr "日志对话框显示合并跟踪版本" #. (para) msgid "" "If you want to see the detail of which revisions were merged as part of that " "commit, use the Include merged revisions checkbox. This " "will fetch the log messages again, but will also interleave the log messages " "from revisions which were merged. Merged revisions are shown in grey because " "they represent changes made on a different part of the tree." msgstr "" "如果你想查看此次提交中有哪些版本被合并的详细信息,选中 包含合并版本" "。这样将会再次获取日志信息,同时也会插入被合并的版本的日志信息。被" "合并的版本使用灰色显示,因为它们代表在版本库中不同部分的修改。" #. (para) msgid "" "Of course, merging is never simple! During feature development on the branch " "there will probably be occasional merges back from trunk to keep the branch " "in sync with the main line code. So the merge history of the branch will also " "include another layer of merge history. These different layers are shown in " "the log dialog using indentation levels." msgstr "" "当然,合并绝非简单!在分支上进行特性开发过程中,也许不时的会将主干的内容合并至" "分支使分支保持同步。所以分支的合并历史将会包含其它层次的合并历史。这些不同层次" "的信息在日志对话框中使用不同的缩进级别显示。" #. (title) msgid "Changing the Log Message and Author" msgstr "修改日志消息和作者" #. (primary) msgid "edit log/author" msgstr "编辑日志/作者" #. (primary) msgid "revision properties" msgstr "版本属性" #. (primary) msgid "revprops" msgstr "版本属性" #. (para) msgid "" "Revision properties are completely different from the Subversion properties " "of each item. Revprops are descriptive items which are associated with one " "specific revision number in the repository, such as log message, commit date " "and committer name (author)." msgstr "" "版本属性完全不同于其它的 Subversion 属性。版本属性是关联于版本库中的特定版本号" "的描述项目,例如日志消息,提交日期和提交者名称(作者)。" #. (para) msgid "" "Sometimes you might want to change a log message you once entered, maybe " "because there's a spelling error in it or you want to improve the message or " "change it for other reasons. Or you want to change the author of the commit " "because you forgot to set up authentication or..." msgstr "" "有时你可能想要修改你曾经输入的日志消息,也许是因为有拼写错误或是你想改进消息内" "容,或是其他别的原因。偶尔你还想修改提交者,可能是你忘了设置认证等原因。" #. (para) msgid "" "Subversion lets you change revision properties any time you want. But since " "such changes can't be undone (those changes are not versioned) this feature " "is disabled by default. To make this work, you must set up a pre-revprop-" "change hook. Please refer to the chapter on Hook Scripts in the Subversion Book for " "details about how to do that. Read " "to find some further notes on implementing hooks on a Windows machine." msgstr "" "Subversion允许你在任何时候修改日志消息和作者。但这种改变不可还原(不在版本控制" "之下),正因如此,这些功能默认是不可用的,如果要开启它,必须设置一个pre-" "revprop-change钩子。具体如何做,请参考《使用 Subversion 进行版本管理》的相关章" "节钩子脚本。在" "Windows机器上实现钩子的注意事项请阅读。" #. (para) msgid "" "Once you've set up your server with the required hooks, you can change the " "author and log message (or any other revprop) of any revision, using the " "context menu from the top pane of the Log dialog. You can also edit a log " "message using the context menu for the middle pane." msgstr "" "一旦你按需要为服务器设置了钩子,你就可以使用日志对话框顶部面板的右键菜单来修改" "任意版本的作者和日志信息(或其它版本属性)了。你也可以使用中间面板的右键菜单编辑" "日志信息。" #. (para) msgid "" "Because Subversion's revision properties are not versioned, making " "modifications to such a property (for example, the svn:log " "commit message property) will overwrite the previous value of that property " "forever." msgstr "" "由于 Subversion 的版本属性不受版本控制,对于这种属性(如 svn:log提交信息属性)作出的修改将永久覆盖该属性之前的值。" #. (title) msgid "Filtering Log Messages" msgstr "过滤日志信息" #. (primary) msgid "filter" msgstr "过滤器" #. (para) msgid "" "If you want to restrict the log messages to show only those you are " "interested in rather than scrolling through a list of hundreds, you can use " "the filter controls at the top of the Log Dialog. The start and end date " "controls allow you to restrict the output to a known date range. The search " "box allows you to show only messages which contain a particular phrase." msgstr "" "如果你只想要显示上千条日志中你所感兴趣的日志,你可以使用日志对话框顶部的过滤器" "控件。开始和结束日期控件允许你查看指定日期范围内的输出。查找框帮你查出含有指定" "内容的信息。" #. (para) msgid "" "Click on the search icon to select which information you want to search in, " "and to choose regex mode. Normally you will only need a " "simple text search, but if you need to more flexible search terms, you can " "use regular expressions. If you hover the mouse over the box, a tooltip will " "give hints on how to use the regex functions. You can also find online " "documentation and a tutorial at http://www.regular-expressions.info/. " "The filter works by checking whether your filter string matches the log " "entries, and then only those entries which match the " "filter string are shown." msgstr "" "点击查找图标来选择你要查找信息的类型,并且选择正则表达式" "模式。一般情况下你只需要简单的文本查找,但是如果你需要更有弹性的查找规则,你就" "可以使用正则表达式。鼠标指针停留在文版框上面时,会显示如何使用正则表达式功能的" "的提示。你也可以在这里 http://www.regular-expressions.info/ 查看在" "线文档和指导。过滤器检查你的过滤字符串是否与日志条目匹配,并且只显示与过滤字符" "串匹配的条目。" #. (para) msgid "" "To make the filter show all log entries that do not " "match the filter string, start the string with an exclamation mark ('!'). For " "example, a filter string !username will only show those " "entries which were not committed by username." msgstr "" "要使过滤所有日志条目的结果中包含过滤字符串,在字符串的" "前面加一个感叹号('!')。例如,过滤字符串 !username 将会显示" "那些不是由 username 提交的条目。" #. (para) msgid "" "Note that these filters act on the messages already retrieved. They do not " "control downloading of messages from the repository." msgstr "" "要注意的是,这些过滤器只对已经获取的信息有效。它们并不从版本库中下载信息。" #. (para) msgid "" "You can also filter the path names in the bottom pane using the " "Hide unrelated changed paths checkbox. Related paths are " "those which contain the path used to display the log. If you fetch the log " "for a folder, that means anything in that folder or below it. For a file it " "means just that one file. The checkbox is tristate: you can show all paths, " "grey out the unrelated ones, or hide the unrelated paths completely." msgstr "" "你还可以使用隐藏无关的修改路径复选框来过滤底部面板中的路" "径名称。所谓相关路径,是指那些与日志相关的路径。对于一个文件夹的日志来说,相关" "路径就是该文件夹以其下的所有内容。对于一个文件的日志来说,相关路径就是与该文件" "的路径。该复选框是3态的: 可以显示所有的路径,将无关的内容灰色显示,或是完全隐" "藏无关路径。" #. (para) msgid "" "Sometimes your working practices will require log messages to follow a " "particular format, which means that the text describing the changes is not " "visible in the abbreviated summary shown in the top pane. The property " "tsvn:logsummary can be used to extract a portion of the " "log message to be shown in the top pane. Read to find out how to use this property." msgstr "" "有时,工作规范要求日志消息符合一个特定的格式,这就意味着描述修改的文本不能在顶" "部面板中以简短的摘要形式显示。属性 tsvn:logsummary 可以用于" "提取日志消息的一部分显示在顶部面板中。参阅 了解如何使用这个属性。" #. (title) msgid "No Log Formatting from Repository Browser" msgstr "在版本库浏览器中没有日志格式化" #. (para) msgid "" "Because the formatting depends upon accessing subversion properties, you will " "only see the results when using a checked out working copy. Fetching " "properties remotely is a slow operation, so you will not see this feature in " "action from the repo browser." msgstr "" "因为格式化依赖于对 subversion 版本库的访问,所以只能在已签出的工作副本中看到结" "果。从远程获取属性是一个很慢的操作,所以你在从版本库浏览器中进行操作时不能看到" "这个特性。" #. (title) msgid "Statistical Information" msgstr "统计信息" #. (primary) msgid "statistics" msgstr "统计" #. (para) msgid "" "The Statistics button brings up a box showing some " "interesting information about the revisions shown in the Log dialog. This " "shows how many authors have been at work, how many commits they have made, " "progress by week, and much more. Now you can see at a glance who has been " "working hardest and who is slacking ;-)" msgstr "" "统计按扭,可以显示一些你感兴趣的关于日志对话框中版本的" "信息。可以显示已经有几个作者做了工作,他们各提交了几次,按周的统计,等等。现" "在,你可以发现一个大概情况: 谁最勤快,谁偷懒。;-)" #. (title) msgid "Statistics Page" msgstr "统计页" #. (para) msgid "" "This page gives you all the numbers you can think of, in particular the " "period and number of revisions covered, and some min/max/average values." msgstr "" "此页可以提供所有你可以想到的数据,特别是周期和包括的版本数,还有一些最大/最小/" "平均值。" #. (title) msgid "Commits by Author Page" msgstr "作者提交次数统计页" #. (title) msgid "Commits-by-Author Histogram" msgstr "作者提交次数统计柱状图" #. (title) msgid "Commits-by-Author Pie Chart" msgstr "作者提交次数统计饼图" #. (para) msgid "" " This graph shows you which authors have been active on the " "project as a simple histogram, stacked histogram or pie chart. " msgstr "" "此图用简单柱状图、叠加柱状图或饼图显示了哪些作者已经在项目中活" "跃了。 " #. (para) msgid "" "Where there are a few major authors and many minor contributors, the number " "of tiny segments can make the graph more difficult to read. The slider at the " "bottom allows you to set a threshold (as a percentage of total commits) below " "which any activity is grouped into an Others category." msgstr "" "其中有几个主要作者和许多辅助的贡献者。由于太小的部分会导致图形难于阅读,所以在" "底部有个滑动条,可以设置一个范围(占所有提交的百分比),在这个范围下的所有行为都" "整合成其他类。" #. (title) msgid "Commits by date Page" msgstr "按日期提交统计页" #. (title) msgid "Commits-by-date Graph" msgstr "按日期提交统计图" #. (para) msgid "" " This page gives you a graphical representation of project " "activity in terms of number of commits and author. This " "gives some idea of when a project is being worked on, and who was working at " "which time." msgstr "" "本页图示了以提交次数作者作为条件的项目" "行为统计。这里可以看出项目什么时候有人在工作,以及什么人在什么时候进行了工作。" #. (para) msgid "" "When there are several authors, you will get many lines on the graph. There " "are two views available here: normal, where each " "author's activity is relative to the base line, and stacked, where each author's activity is relative to the line underneath. " "The latter option avoids the lines crossing over, which can make the graph " "easier to read, but less easy to see one author's output." msgstr "" "如果有多个作者,你就会在图中看到多行。有两种视图可用正常,在这里,每个作者的行为都相对于基线;叠加,在这" "里每个作者的行为是相对于他的下面那条线。后一种视图避免了线的交叉,对于图来说更" "明了,但对查看一个作者的输出比较不直观。" #. (para) msgid "" "By default the analysis is case-sensitive, so users PeterEgan and PeteRegan are treated as different authors. " "However, in many cases user names are not case-sensitive, and are sometimes " "entered inconsistently, so you may want DavidMorgan and " "davidmorgan to be treated as the same person. Use the " "Authors case insensitive checkbox to control how this is " "handled." msgstr "" "默认统计是区别大小写的,也就是说用户 PeterEgan 与 " "PeteRegan 被认为是两个不同的作者。但在多数时候用户名并不区" "别大小写,有时会存在不一致,所以你可能希望 DavidMorgan 和 " "davidmorgan 能被当成是同一个作者。使用作者区分大" "小写复选框来控制。" #. (para) msgid "" "Note that the statistics cover the same period as the Log dialog. If that is " "only displaying one revision then the statistics will not tell you very much." msgstr "" "注意,统计只包括了日志对话框中的那段时期。如果日志对话框中只显示一个版本,那么" "统计就没有什么意义了。" #. (title) msgid "Offline Mode" msgstr "离线方式" #. (title) msgid "Go Offline Dialog" msgstr "要离线对话框" #. (para) msgid "" " If the server is not reachable, and you have log caching " "enabled you can use the log dialog and revision graph in offline mode. This " "uses data from the cache, which allows you to continue working although the " "information may not be up-to-date or even complete." msgstr "" " 如果服务器不可用,并且你已经启用了日志缓存,那么你可以在离线" "方式下使用日志对话框和版本图。它使用缓存中的数据,使得你可以继续工作,尽管信息" "可能不是最新的甚至不完整。" #. (term) msgid "Offline for now" msgstr "立即离线" #. (para) msgid "" "Complete the current operation in offline mode, but retry the repository next " "time log data is requested." msgstr "使用离线方式完成当前操作,但当下次需要日志数据时重新尝试链接版本库。" #. (term) msgid "Permanently offline" msgstr "永久离线" #. (para) msgid "" "Remain in offline mode until a repository check is specifically requested. " "See ." msgstr "" "保持离线方式,直到特别要求进行版本库检查。参见 。" #. (term) msgid "Cancel" msgstr "取消" #. (para) msgid "" "If you don't want to continue the operation with possibly stale data, just " "cancel." msgstr "如果你不想使用失效的数据来继续操作,就取消吧。" #. (para) msgid "Here you have three options: " msgstr "这里你有三个选择: " #. (para) msgid "" "The Make this the default checkbox prevents this dialog " "from re-appearing and always picks the option you choose next. You can still " "change (or remove) the default after doing this from " "TortoiseSVNSettings." msgstr "" "选中设为默认值复选框使用你本次的选项作为以后的选择,避免" "再次显示此对话框。你可以通过 TortoiseSVN设置修改(或删除)此默认值。" #. (title) #. (title) msgid "Refreshing the View" msgstr "刷新视图" #. (para) msgid "" "If you want to check the server again for newer log messages, you can simply " "refresh the view using F5. If you are using the log cache " "(enabled by default), this will check the repository for newer messages and " "fetch only the new ones. If the log cache was in offline mode, this will also " "attempt to go back online." msgstr "" "如果你想再次检查服务器是否有新的日志消息,可以使用 F5 键来刷" "新视图。如果使用日志缓存(默认启用),这将会检查版本库是否有新的消息并且只获取新" "的消息。如果日志缓存处于离线模式,这将会尝试恢复在线模式。" #. (para) msgid "" "If you are using the log cache and you think the message content or author " "may have changed, you can use Shift-F5 or Ctrl-F5 to re-fetch the displayed messages from the server and update the log " "cache. Note that this only affects messages currently shown and does not " "invalidate the entire cache for that repository." msgstr "" "如果使用日志缓存并且你认为消息内容或者作者可能被更改,你可以使用 " "Shift-F5Ctrl-F5 来从服务器重新获取显示的" "消息并更新日志缓存。注意: 此动作只影响当前显示的消息并不会影响此版本库的全部缓" "存。" #. (title) msgid "Viewing Differences" msgstr "查看差异" #. (primary) #. (primary) msgid "diff" msgstr "比较" #. (primary) msgid "compare" msgstr "比较" #. (para) msgid "" "One of the commonest requirements in project development is to see what has " "changed. You might want to look at the differences between two revisions of " "the same file, or the differences between two separate files. TortoiseSVN " "provides a built-in tool named TortoiseMerge for " "viewing differences of text files. For viewing differences of image files, " "TortoiseSVN also has a tool named TortoiseIDiff. " "Of course, you can use your own favourite diff program if you like." msgstr "" "在项目开发中,有一个很常用的要求就是查看更改。可能是你要求查看同一文件的两个版" "本之间的差异,或者是查看两个独立的文件的差异。TortoiseSVN 自带了一个工具叫 " "TortoiseMerge 用来查看文本文件的差异。也有一个叫 " "TortoiseIDiff 的工具来查看图像文件的差异。当然,你" "可以根据你自己的喜好来选择比较差异的工具。" #. (title) msgid "File Differences" msgstr "文件差异" #. (term) msgid "Local changes" msgstr "本地修改" #. (para) msgid "" "If you want to see what changes you have made in your " "working copy, just use the explorer context menu and select " "TortoiseSVNDiff." msgstr "" "如果你想看到你的本地副本有哪些更加,只用在资源管理器中右键菜单下选" "TortoiseSVN比较差异。" #. (term) msgid "Difference to another branch/tag" msgstr "与另外一个分支/标签之间的差异" #. (para) msgid "" "If you want to see what has changed on trunk (if you are working on a branch) " "or on a specific branch (if you are working on trunk), you can use the " "explorer context menu. Just hold down the Shift key while " "you right click on the file. Then select TortoiseSVNDiff with URL. In the " "following dialog, specify the URL in the repository with which you want to " "compare your local file to." msgstr "" "如果你想查看主干程序(假如你在分支上开发)有哪些修改或者是某一分支(假如你在主干" "上开发)有哪些修改,你可以使用右键菜单。在你点击文件的同时按住Shift键,然后选择TortoiseSVN URL" "比较。在弹出的对话框中,将特别显示将与你本地版本做" "比较的版本的URL地址。" #. (para) msgid "" "You can also use the repository browser and select two trees to diff, perhaps " "two tags, or a branch/tag and trunk. The context menu there allows you to " "compare them using Compare revisions. Read more in " "." msgstr "" "你还可以使用版本库浏览器,选择两个目录树比较,也许是两个标记,或者是分支/标记" "和最新版本。右键菜单允许你使用比较版本来比较它们。" "阅读以便获得更多信息。" #. (term) msgid "Difference from a previous revision" msgstr "与历史版本的比较差异" #. (para) msgid "" "If you want to see the difference between a particular revision and your " "working copy, use the Revision Log dialog, select the revision of interest, " "then select Compare with working copy from the " "context menu." msgstr "" "如果你想查看某一特定版本与本地副本之间的差异,使用显示日志对话框,选择要比较的" "版本,然后选择在右键菜单中选与本地副本比较差异" #. (para) msgid "" "If you want to see the difference between the last committed revision and " "your working copy, assuming that the working copy hasn't been modified, just " "right click on the file. Then select TortoiseSVNDiff with previous version. " "This will perform a diff between the revision before the last-commit-date (as " "recorded in your working copy) and the working BASE. This shows you the last " "change made to that file to bring it to the state you now see in your working " "copy. It will not show changes newer than your working copy." msgstr "" "如果你想查看上一次提交的版本和你的工作副本之间的差异,假设你的工作副本没有被修" "改,只要用右键单击文件。然后选择 TortoiseSVN与前一版本比较。这样将会对上一" "次提交时间(记录在你的工作副本中)之前的版本和工作基础版本进行差异比较。它将会显" "示工作副本中此文件变成当前状态的那一次修改。它不会显示比工作副本更新的修改。" #. (term) msgid "Difference between two previous revisions" msgstr "两个历史版本的比较" #. (para) msgid "" "If you want to see the difference between two revisions which are already " "committed, use the Revision Log dialog and select the two revisions you want " "to compare (using the usual Ctrl-modifier). Then select " "Compare revisions from the context menu." msgstr "" "如果你要查看任意已提交的两个历史版本之间的差异,在版本日志对话框中选择你要比较" "的两个版本(一般使用 Ctrl-更改),然后在右键菜单中选" "比较版本差异" #. (para) msgid "" "If you did this from the revision log for a folder, a Compare Revisions " "dialog appears, showing a list of changed files in that folder. Read more in " "." msgstr "" "如果你在文件夹的版本日志中这样做,就会出现一个比较版本对话框,显示此文件夹的文" "件修改列表。阅读以便获得更多信息。" #. (term) msgid "All changes made in a commit" msgstr "提交所有修改" #. (para) msgid "" "If you want to see the changes made to all files in a particular revision in " "one view, you can use Unified-Diff output (GNU patch format). This shows only " "the differences with a few lines of context. It is harder to read than a " "visual file compare, but will show all the changes together. From the " "Revision Log dialog select the revision of interest, then select " "Show Differences as Unified-Diff from the context " "menu." msgstr "" "如果你要在一个视窗中查看某一版本的所有更改,你可以使用统一显示所有比较 (GNU 片" "段整理)。它将显示所有修改中的部分内容。它很难显示一个全面清晰的比较,但是会将" "所有更改都集中显示出来。在版本日志对话框中选择某一版本,然后在右键菜单中选择" "统一显示所有比较。" #. (term) msgid "Difference between files" msgstr "文件差异" #. (para) msgid "" "If you want to see the differences between two different files, you can do " "that directly in explorer by selecting both files (using the usual " "Ctrl-modifier). Then from the explorer context menu select " "TortoiseSVNDiff." msgstr "" "如果你要查看两个不同文件之间的差异,你可以直接在资源管理器中选择这两个文件(一" "般使用 Ctrl-modifier),然后右键菜单中选" "TortoiseSVN比较差异。" #. (term) msgid "Difference between WC file/folder and a URL" msgstr "WC文件/文件夹与URL之间的比较差异" #. (para) msgid "" "If you want to see the differences between a file in your working copy, and a " "file in any Subversion repository, you can do that directly in explorer by " "selecting the file then holding down the Shift key whilst " "right clicking to obtain the context menu. Select " "TortoiseSVNDiff with URL. You can do the same thing for a working copy " "folder. TortoiseMerge shows these differences in the same way as it shows a " "patch file - a list of changed files which you can view one at a time." msgstr "" "如果你要查看你本地副本中的某个文件与任意 Subversion 版本库中的某个文件之间的差" "异,你可以之间在资源管理器中操作,选中文件然后按下 Shift 键," "同时右键单击显示右键菜单。选中 TortoiseSVN与 URL 比较。你可以对工作副本" "文件夹做相同的操作。TortoiseMerge 通过与显示补丁文件相同的方法显示文件夹差异 " "- 你可以通过一个已修改文件列表分别查看某个文件。" #. (term) msgid "Difference with blame information" msgstr "追溯信息之间的比较差异" #. (para) msgid "" "If you want to see not only the differences but also the author, revision and " "date that changes were made, you can combine the diff and blame reports from " "within the revision log dialog. Read " "for more detail." msgstr "" "如果你要查看的不仅是比较差异而且包括修改该版本的作者,版本号和日期,你可以在版" "本日志对话框中综合比较差异和追溯信息。这里有更多详细介绍。" #. (term) msgid "Difference between folders" msgstr "比较文件夹差异" #. (para) msgid "" "The built-in tools supplied with TortoiseSVN do not support viewing " "differences between directory hierarchies. But if you have an external tool " "which does support that feature, you can use that instead. In we tell you about some tools which we have used." msgstr "" "TortoiseSVN 自带的内置工具不支持查看多级目录之间的差异,但你可以使用支持该功能" "的外置工具来替代。在 介绍了一些我们使" "用过的工具。" #. (para) msgid "" "If you have configured a third party diff tool, you can use Shift when selecting the Diff command to use the alternate tool. Read to find out about configuring other " "diff tools." msgstr "" "如果你已经配置了第三方的比较工具,你可以在选择比较差异命令的时候按下 " "Shift 键来选择替代工具。关于配置其它比较工具,请参阅 。" #. (title) msgid "Line-end and Whitespace Options" msgstr "行结束符和空白选项" #. (para) msgid "" "Sometimes in the life of a project you might change the line endings from " "CRLF to LF, or you may change the " "indentation of a section. Unfortunately this will mark a large number of " "lines as changed, even though there is no change to the meaning of the code. " "The options here will help to manage these changes when it comes to comparing " "and applying differences. You will see these settings in the Merge and Blame dialogs, as well as in the settings " "for TortoiseMerge." msgstr "" "在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 " "LF,或者修改一段代码的缩进。不幸的是这样将会使大量的代码行" "被标记为已修改,尽管代码本身并没有被修改。这里列出的选项将会在比较差异和应用补" "丁时帮助你应对这些修改。你将会在合并追溯对话框中看到这些设置,它们同样也出现在 TortoiseMerge 的设置中。" #. (para) msgid "" "Ignore line endings excludes changes which are due " "solely to difference in line-end style." msgstr "忽略行结束符 排除仅行结束符的差异。" #. (para) msgid "" "Compare whitespaces includes all changes in indentation " "and inline whitespace as added/removed lines." msgstr "" "比较空白 将所有缩进和行内空白差异视为增加/删除的行。" #. (para) msgid "" "Ignore whitespace changes excludes changes which are due " "solely to a change in the amount or type of whitespace, eg. changing the " "indentation or changing tabs to spaces. Adding whitespace where there was " "none before, or removing a whitespace completely is still shown as a change." msgstr "" "忽略空白修改 排除那些完全是针对空白数量或类型的修改,例" "如,修改缩进或者将 tab 改为空格。在原来没有空白的地方增加空白或删除全部空白仍" "然会显示为修改。" #. (para) msgid "" "Ignore all whitespaces excludes all whitespace-only " "changes." msgstr "忽略所有空白 排除仅空白改变的差异。" #. (para) msgid "Naturally, any line with changed content is always included in the diff." msgstr "自然的,任何已经修改内容的行永远都包含在差异中。" #. (title) msgid "Comparing Folders" msgstr "比较文件夹" #. (primary) msgid "compare revisions" msgstr "比较两个修订版本" #. (primary) msgid "export changes" msgstr "导出修改" #. (title) msgid "The Compare Revisions Dialog" msgstr "比较修订版本对话框" #. (para) msgid "" " When you select two trees within the repository browser, or " "when you select two revisions of a folder in the log dialog, you can " "Context menuCompare revisions." msgstr "" " 当你在版本库浏览器中选择了两个树,或者在日志对话框中选择了一" "个文件夹的两个版本,就可以使用右键菜单比较版本差异。" #. (para) msgid "" "This dialog shows a list of all files which have changed and allows you to " "compare or blame them individually using context menu." msgstr "" "这个对话框显示一个所有已经修改的文件列表,允许你使用右键菜单单独的比较或追溯它" "们。" #. (para) msgid "" "You can export a change tree, which is useful if you " "need to send someone else your project tree structure, but containing only " "the files which have changed. This operation works on the selected files " "only, so you need to select the files of interest - usually that means all of " "them - and then Context menuExport selection to.... You " "will be prompted for a location to save the change tree." msgstr "" "你可以导出修改树,当你需要将仅包含已修改文件的项目树结构" "发送给其它人的时候很有用。这个操作仅对选中的文件有效,所以需要选择你感兴趣的文" "件 - 通常这就意味着全部文件 - 然后使用右键菜单导出选择项...。然后会提示你选" "择目录保存修改树。" #. (para) msgid "" "You can also export the list of changed files to a text " "file using Context menuSave list " "of selected files to...." msgstr "" "你也可以通过右键菜单保存选择文件列" "表将修改过的文件列表导出为文本" "文件。" #. (para) msgid "" "If you want to export the list of files and the actions " "(modified, added, deleted) as well, you can do that using " "Context menuCopy selection to " "clipboard." msgstr "" "如果你需要导出文件列表动作(修改,增加,删除),你可以使" "用右键菜单复制到剪贴板。" #. (para) msgid "" "The button at the top allows you to change the direction of comparison. You " "can show the changes need to get from A to B, or if you prefer, from B to A." msgstr "" "顶部的按钮允许你改变比较的方向。你可以显示从A到B的修改,或者如果你喜欢,显示从" "B到A的修改。" #. (para) msgid "" "The buttons with the revision numbers on can be used to change to a different " "revision range. When you change the range, the list of items which differ " "between the two revisions will be updated automatically." msgstr "" "有版本数字的按钮可以用来改变版本范围。当你改变范围时,两个版本不同的项目列表会" "自动更新。" #. (para) msgid "" "If the list of filenames is very long, you can use the search box to reduce " "the list to filenames containing specific text. Note that a simple text " "search is used, so if you want to restrict the list to C source files you " "should enter .c rather than *.c." msgstr "" "如果列表中的文件非常多,你可以使用查找框来筛选文件名中包含指定文字的文件,从而" "减少列表中的文件。注意这里使用的是简单文本查找,所以当你需要显示 C 语言源码的" "列表时,你应该输入.c 而不是 *.c。" #. (title) msgid "Diffing Images Using TortoiseIDiff" msgstr "使用 TortoiseIDiff 进行比较的图像" #. (primary) msgid "image diff" msgstr "图像比较" #. (primary) msgid "TortoiseIDiff" msgstr "TortoiseIDiff" #. (para) msgid "" "There are many tools available for diffing text files, including our own " "TortoiseMerge, but we often find ourselves wanting to see how an image file " "has changed too. That's why we created TortoiseIDiff." msgstr "" "我们有许多有用的比较文本文件的工具,包括我们自带的TortoiseMerge,但是我们也需" "要查看图像文件的更改。这就是我们设计TortoiseIDiff的原因。" #. (title) msgid "The image difference viewer" msgstr "差异察看器截图" #. (para) msgid "" "TortoiseSVNDiff for any of the common image file formats will start " "TortoiseIDiff to show image differences. By default the images are displayed " "side-by-side but you can use the View menu or toolbar to switch to a top-" "bottom view instead, or if you prefer, you can overlay the images and pretend " "you are using a lightbox." msgstr "" "TortoiseSVN比较差" "异 会启动 TortoiseIDiff 显示常用格式的图像差异。一" "般情况下是左右对称地显示两个图像,但你也可以通过视图菜单或者工具栏切换为上下显" "示的模式,或者如果你愿意,也可以重叠显示图像。" #. (para) msgid "" "Naturally you can also zoom in and out and pan around the image. You can also " "pan the image simply by left-dragging it. If you select the Link " "images together option, then the pan controls (scrollbars, " "mousewheel) on both images are linked." msgstr "" "当然你也可以放大和缩小,或者移动图像。你也可以简单的通过左键拖拽来移动图像。如" "果你选择链接图像位置,则移动控制(滑动条,鼠标滚轮)对两幅" "图像同时生效。" #. (para) msgid "" "An image info box shows details about the image file, such as the size in " "pixels, resolution and colour depth. If this box gets in the way, use " "ViewImage Info to hide it. You can get the same information in a tooltip if you " "hover the mouse over the image title bar." msgstr "" "在图像信息框中显示了图像的基本信息,比如像素的大小,颜色的深度。如果觉得这个框" "碍眼可以选择视图图像信息来隐藏它。当你的鼠标指针位于图像标题栏上方时,可以从" "工具提示中获得同样的信息。" #. (para) msgid "" "When the images are overlaid, the relative intensity of the images (alpha " "blend) is controlled by a slider control at the left side. You can click " "anywhere in the slider to set the blend directly, or you can drag the slider " "to change the blend interactively. Ctrl+Shift-Wheel to change the blend." msgstr "" "当图像叠加时,图像的相对亮度(alpha 混合)由左边的滑杆控制。你可以点击滑杆的任意" "地方来设置混合参数,或者通过拖曳滑杆来交互改变。Ctrl+Shift-" "鼠标滚轮也可以改变混合参数。" #. (para) msgid "" "The button above the slider toggles between 0% and 100% blends, and if you " "double click the button, the blend toggles automatically every second until " "you click the button again. This can be useful when looking for multiple " "small changes." msgstr "" "滑杆上方的按钮可以切换 0% 和 100% 混合,如果你双击按钮,会每隔两秒钟自动切换," "直到再次点击按钮为止。当查看多处小更改时,这个功能很有用。" #. (para) msgid "" "Sometimes you want to see a difference rather than a blend. You might have " "the image files for two revisions of a printed circuit board and want to see " "which tracks have changed. If you disable alpha blend mode, the difference " "will be shown as an XOR of the pixel colour values. " "Unchanged areas will be plain white and changes will be coloured." msgstr "" "有时你想要查看不同但不是混合图像。也许你有两个版本的印刷电路板图像文件,想查看" "哪些线条改变了。如果你关闭 alpha 混合模式,不同之处会以像素颜色值的" "或非(XOR)结果显示。未修改的区域是纯白色的,修改的部分则是彩色的。" #. (title) msgid "External Diff/Merge Tools" msgstr "其他的比较/合并工具" #. (primary) msgid "diff tools" msgstr "差异比较工具" #. (primary) msgid "merge tools" msgstr "合并工具" #. (para) msgid "" "If the tools we provide don't do what you need, try one of the many open-" "source or commercial programs available. Everyone has their own favourites, " "and this list is by no means complete, but here are a few that you might " "consider:" msgstr "" "如果我们提供的这些工具不是你所需要的,可以尝试使用一些其他开源的或者商业的软" "件。每个人都有不同喜好,下面列表虽不完全,或许有些你也会认可的: " #. (term) msgid "WinMerge" msgstr "WinMerge" #. (para) msgid "" "WinMerge is a great open-source diff tool which can also handle " "directories." msgstr "" "WinMergeWinMerge也是一款很好的能处理目录的开源软件。" #. (term) msgid "Perforce Merge" msgstr "Perforce Merge" #. (para) msgid "" "Perforce is a commercial RCS, but you can download the diff/merge tool for " "free. Get more information from Perforce." msgstr "" "Perforce 是一款商业 RCS,但是你也可以免费下载到。可以从Perforce获得更多信息。" #. (term) msgid "KDiff3" msgstr "KDiff3" #. (para) msgid "" "KDiff3 is a free diff tool which can also handle directories. You can " "download it from here." msgstr "" "KDiff3也是一款能处理目录的免费比较工具。你可以从here下载。" #. (term) msgid "ExamDiff" msgstr "ExamDiff" #. (para) msgid "" "ExamDiff Standard is freeware. It can handle files but not directories. " "ExamDiff Pro is shareware and adds a number of goodies including directory " "diff and editing capability. In both flavours, version 3.2 and above can " "handle unicode. You can download them from PrestoSoft." msgstr "" "ExamDiff Standard是免费软件。它能处理文件但不能处理目录。ExamDiff Pro是共享软" "件,拥有一系列的功能包括目录比较和编辑的能力。对于以上体验,3.2及以上版本能处" "理二进制。你可以从PrestoSoft下载它们。" #. (term) msgid "Beyond Compare" msgstr "Beyond Compare" #. (para) msgid "" "Similar to ExamDiff Pro, this is an excellent shareware diff tool which can " "handle directory diffs and unicode. Download it from Scooter Software." msgstr "" "和ExamDiff Pro一样,这也是一款很不错的共享软件,同样也能进行目录比较和二进制处" "理。下载地址Scooter " "Software。" #. (term) msgid "Araxis Merge" msgstr "Araxis Merge" #. (para) msgid "" "Araxis Merge is a useful commercial tool for diff and merging both files and " "folders. It does three-way comparison in merges and has synchronization links " "to use if you've changed the order of functions. Download it from Araxis." msgstr "" "Araxis Merge是一款能对文件和文件夹进行比较和合并的商业软件。在合并时它进行三路" "比较,而且在你修改函数的顺序时可以进行异步链接。可以从这里下载 Araxis。" #. (term) msgid "SciTE" msgstr "SciTE" #. (para) msgid "" "This text editor includes syntax colouring for unified diffs, making them " "much easier to read. Download it from Scintilla." msgstr "" "这款文本编译器在统一比较时提供语法显示,读起来更加容易。可以从这里下载Scintilla。" #. (term) msgid "Notepad2" msgstr "Notepad2" #. (para) msgid "" "Notepad2 is designed as a replacement for the standard Windows Notepad " "program, and is based on the Scintilla open-source edit control. As well as " "being good for viewing unified diffs, it is much better than the Windows " "notepad for most jobs. Download it for free here." msgstr "" "Notepad2的设计旨在替代 Windows自带的记事本的功能,它以开源编译控制为基础。在查" "看统一比较时,它能实现比Windows自带的记事本更多功能。免费下载here。" #. (para) msgid "" "Read for information on how to " "set up TortoiseSVN to use these tools." msgstr "" "这里可以了解到怎样起用TortoiseSVN来" "使用这些工具。" #. (title) msgid "Adding New Files And Directories" msgstr "添加新文件和目录" #. (primary) msgid "add" msgstr "增加" #. (primary) msgid "version new files" msgstr "" #. (title) #. (title) msgid "Explorer context menu for unversioned files" msgstr "未受版本控制的文件之资源管理器上下文菜单" #. (para) msgid "" " If you created new files and/or directories during your " "development process then you need to add them to source control too. Select " "the file(s) and/or directory and use TortoiseSVNAdd." msgstr "" "如果在你的开发过程中你创建了新的文件或目录,那么你需要把他们加" "入你的版本控制中。选择那个文件或目录并使用TortoiseSVN添加(Add)." #. (para) msgid "" "After you added the files/directories to source control the file appears with " "a added icon overlay which means you first have to commit " "your working copy to make those files/directories available to other " "developers. Adding a file/directory does not affect the " "repository!" msgstr "" "当你添加了指定的文件/目录到版本控制系统之后,这个文件上会出现一个" "added标志,这意味着你得先提交你的工作副本使该文件/目录对其" "他开发者来说成为有效的。添加一个文件/目录不会not影响版本" "库" #. (title) msgid "Many Adds" msgstr "更多" #. (para) msgid "" "You can also use the Add command on already versioned folders. In that case, " "the add dialog will show you all unversioned files inside that versioned " "folder. This helps if you have many new files and need to add them all at " "once." msgstr "" "你也可以在已经版本控制的文件夹上使用增加命令。那样的话,增加对话框会显示该版本" "控制文件夹中所有未版本控制的文件。如果你有许多新文件需要一起增加的话,这是很有" "帮助的。" #. (para) msgid "select the files you want to add" msgstr "选择你要添加的文件" #. (para) #. (para) msgid "" "right-drag them to the new location inside the working copy" msgstr "用鼠标右键拖拽它们到工作副本的新位置" #. (para) #. (para) msgid "release the right mouse button" msgstr "松开鼠标右键" #. (para) msgid "" "select Context MenuSVN Add files " "to this WC. The files will then be copied to the " "working copy and added to version control." msgstr "" "选择右键菜单SVN 增加文件到工作副本" "。这些文件会被复制到工作副本,加入版本控制。" #. (para) msgid "" "To add files from outside your working copy you can use the drag-and-drop " "handler: " msgstr "你可以使用鼠标拖拽的方式从你的工作副本外部添加进文件。" #. (para) msgid "" "You can also add files within a working copy simply by left-dragging and " "dropping them onto the commit dialog." msgstr "你可以在工作副本中通过左拖,将文件放到提交对话框中,来增加文件。" #. (para) msgid "" "If you add a file or folder by mistake, you can undo the addition before you " "commit using TortoiseSVNUndo " "add...." msgstr "" "如果你误增加了文件或文件夹,你可以在提交前撤销增加,使用" "TortoiseSVN撤销增加." #. (title) msgid "Copying/Moving/Renaming Files and Folders" msgstr "复制/移动/重命名文件和文件夹" #. (primary) msgid "copy files" msgstr "复制文件" #. (primary) msgid "rename files" msgstr "改名文件" #. (primary) msgid "move files" msgstr "移动文件" #. (primary) #. (primary) msgid "branch" msgstr "分支" #. (primary) #. (primary) msgid "tag" msgstr "标记" #. (para) msgid "" "It often happens that you already have the files you need in another project " "in your repository, and you simply want to copy them across. You could simply " "copy the files and add them as described above, but that would not give you " "any history. And if you subsequently fix a bug in the original files, you can " "only merge the fix automatically if the new copy is related to the original " "in Subversion." msgstr "" "经常发生其它项目需要使用某个项目文件的情况,你只想简单的复制它们。你可以使用上" "述方法复制这些文件,然后增加到版本库,但是这种方法不会给你任何历史信息。并且当" "你修改了原始文件的问题后,你只能在那些原始文件与新副本在同一个 Subversion 版本" "库的情况下自动合并修改。" #. (para) msgid "" "The easiest way to copy files and folders from within a working copy is to " "use the right-drag menu. When you right-drag a file or " "folder from one working copy to another, or even within the same folder, a " "context menu appears when you release the mouse. Now you can " "copy existing versioned content to a new location, possibly renaming it at " "the same time." msgstr "" "在工作副本中复制文件和目录的最简单的方法是使用右拖菜单。当你从一个工作副本" "右拖文件或目录到另一个工作副本,甚至是在同一个目录中,当你释" "放鼠标时,就会出现一个上下文菜单。 现在你可以复制受版本控制的" "内容到新位置,可能同时有改名操作。" #. (para) msgid "" "You can also copy or move versioned files within a working copy, or between " "two working copies, using the familiar cut-and-paste method. Use the standard " "Windows Copy or Cut to copy one or more " "versioned items to the clipboard. If the clipboard contains such versioned " "items, you can then use TortoiseSVNPaste (note: not the standard " "Windows Paste) to copy or move those items to the new " "working copy location." msgstr "" "你也可以使用熟悉的剪切-粘贴方式在一个工作副本中或两个工作副本之间复制或移动版" "本控制的文件。使用标准的 Windows 复制剪切来复制或移动版本控制的条目到剪贴板中。如果剪贴板中包含这样的版本控制的" "条目,就可以使用 TortoiseSVN粘贴(注意: 不是标准的 Windows 粘贴)来复" "制或移动这些条目到工作副本中的新位置。" #. (para) msgid "" "You can copy files and folders from your working copy to another location in " "the repository using TortoiseSVNBranch/Tag. Refer to to find out more." msgstr "" "你可以使用TortoiseSVN分支/标记将工作副本中的文件和文件夹复制到版本库中的另一个位" "置。参看 获得更多信息。" #. (para) msgid "" "You can locate an older version of a file or folder in the log dialog and " "copy it to a new location in the repository directly from the log dialog " "using Context menuCreate branch/" "tag from revision. Refer to to find out more." msgstr "" "你可以直接在日志对话框中定位一个文件或文件夹的旧版本并使用" "右键菜单从版本创建分支/标记将其复制到版本库中的新位置。参看 获得更多信息。" #. (para) msgid "" "You can also use the repository browser to locate content you want, and copy " "it into your working copy directly from the repository, or copy between two " "locations within the repository. Refer to to find out more." msgstr "" "你也可以使用版本库浏览器定位内容,并从版本库直接复制到你的工作副本中,或复制到" "版本库中的另一个位置。参看 获得更多信" "息。" #. (title) msgid "Cannot copy between repositories" msgstr "不能在版本库之间复制" #. (para) msgid "" "Whilst you can copy and files and folders within a " "repository, you cannot copy or move from one repository " "to another while preserving history using TortoiseSVN. Not even if the " "repositories live on the same server. All you can do is copy the content in " "its current state and add it as new content to the second repository." msgstr "" "虽然可以在同一个版本库中复制或移动文件和文件夹,你却" "不能使用 TortoiseSVN 从一个版本库中复制或移动到另一个版本" "库并保留完整的历史。即使版本库在同一个服务器上也不可以。你能做的就是复制它当前" "的状态并以新内容的形式添加到第二个版本库中。" #. (para) msgid "" "If you are uncertain whether two URLs on the same server refer to the same or " "different repositories, use the repo browser to open one URL and find out " "where the repository root is. If you can see both locations in one repo " "browser window then they are in the same repository." msgstr "" "如果你不能确定位于同一个服务器上的两个 URL 指向相同的还是不同的版本库,使用版" "本库浏览器打开其中一个URL,并且找到版本库的根。如果你能在这一个版本库浏览器中" "看到那两个地址,那么它们就在同一个版本库中。" #. (title) msgid "Ignoring Files And Directories" msgstr "忽略文件和目录" #. (primary) msgid "ignore" msgstr "忽略" #. (primary) msgid "unversioned files/folders" msgstr "未版本控制的文件/文件夹" #. (para) msgid "" " In most projects you will have files and folders that should " "not be subject to version control. These might include files created by the " "compiler, *.obj, *.lst, maybe an output folder used to " "store the executable. Whenever you commit changes, TortoiseSVN shows your " "unversioned files, which fills up the file list in the commit dialog. Of " "course you can turn off this display, but then you might forget to add a new " "source file." msgstr "" "在多数项目中你总会有文件和目录不需要进行版本控制。这可能包括一" "些由编译器生成的文件,*.obj,*.lst,或许是一个用于存放可执" "行程序的输出文件夹。只要你提交修改,TortoiseSVN 就会在提交对话框的文件列表中显" "示出未版本控制文件。当然你可以关闭这个显示,不过你可能会忘记添加新的源文件。" #. (para) msgid "" "The best way to avoid these problems is to add the derived files to the " "project's ignore list. That way they will never show up in the commit dialog, " "but genuine unversioned source files will still be flagged up." msgstr "" "最好的避免类似问题的方法是添加参考文件到该项目的忽略列表。这样他们就永远不会出" "现在提交对话框中,而真正的未版本控制文件则仍然列出。" #. (para) msgid "" "If you right click on a single unversioned file, and select " "the command TortoiseSVNAdd to " "Ignore List from the context menu, a submenu " "appears allowing you to select just that file, or all files with the same " "extension. If you select multiple files, there is no submenu and you can only " "add those specific files/folders." msgstr "" "如果你右键一个单独的未版本控制文件,并从菜单栏选择" "TortoiseSVN(加入忽略列表)Add to " "Ignore List,会出现一个子菜单允许你仅选择该文件,或" "者所有具有相同后缀的文件。如果你选择多种文件,那么就没有子菜单了,你仅能添加这" "些特定的文件/目录。" #. (para) msgid "" "If you want to remove one or more items from the ignore list, right " "click on those items and select TortoiseSVNRemove from Ignore List You " "can also access a folder's svn:ignore property directly. " "That allows you to specify more general patterns using filename globbing, " "described in the section below. Read for more information on setting properties directly. Please be aware that " "each ignore pattern has to be placed on a separate line. Separating them by " "spaces does not work." msgstr "" "如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择" "TortoiseSVN从忽略列表删除。你也可以直接存取目录的svn:ignore" "属性。它允许你使用文件匹配来指定多个模式,这在下面的章节叙述,阅读获得更多关于直接设置属性的信息。请注意每个" "忽略模式占一行,不支持使用空格分割。" #. (title) msgid "The Global Ignore List" msgstr "全局忽略列表" #. (para) msgid "" "Another way to ignore files is to add them to the global ignore " "list. The big difference here is that the global ignore list is a " "client property. It applies to all Subversion projects, " "but on the client PC only. In general it is better to use the svn:" "ignore property where possible, because it can be applied to " "specific project areas, and it works for everyone who checks out the project. " "Read for more information." msgstr "" "另一个忽略文件的方法是添加这些文件到global ignore list .他们最大的不同是全局忽略列表是一个客户端特性。它会作用到 " "所有的(all)subversion 项目。但只能在pc客户端使用。在全局尽可能更好" "的使用svn:ignore特性,因为他能够应用到特殊的项目区域,并" "却他作用于所有检出该项目的人。阅读获" "得更多信息。" #. (title) msgid "Ignoring Versioned Items" msgstr "忽略已版本控制的条目" #. (para) msgid "" "Versioned files and folders can never be ignored - that's a feature of " "Subversion. If you versioned a file by mistake, read for instructions on how to unversion it." msgstr "" "已版本控制的文件或目录不能够忽略,这是subversion的一个特性。如果你错误的版本控" "制了一个文件,阅读介绍怎样取消" "版本控制(unversion)。" #. (title) msgid "Pattern Matching in Ignore Lists" msgstr "忽略列表中的模式匹配" #. (primary) msgid "globbing" msgstr "globbing" #. (primary) msgid "pattern matching" msgstr "模式匹配" #. (term) msgid "*" msgstr "*" #. (para) msgid "" "Matches any string of characters, including the empty string (no characters)." msgstr "匹配任何字符串,包括空串(没有字符)" #. (term) msgid "?" msgstr "?" #. (para) msgid "Matches any single character." msgstr "匹配任何单字符" #. (term) msgid "[...]" msgstr "[...]" #. (para) msgid "" "Matches any one of the characters enclosed in the square brackets. Within the " "brackets, a pair of characters separated by - matches any " "character lexically between the two. For example [AGm-p] " "matches any one of A, G, m, n, o or p." msgstr "" "匹配任何单在方括号[]内的单字符,在方括号内,一对字符被-分隔,匹" "配任何词汇表(lexically)上在他们中间的字符。例如[AGm-p]匹配" "任何单个的A,G,m," "n,o或者p。" #. (para) msgid "" "Subversion's ignore patterns make use of filename globbing, a technique " "originally used in Unix to specify files using meta-characters as wildcards. " "The following characters have special meaning: " msgstr "" "Subversion 的忽略模式使用了文件匹配,一种原先在Unix系统中使用meta字符作为通配" "符的技术。下面的字符有着特殊的意思: " #. (para) msgid "" "Pattern matching is case sensitive, which can cause problems on Windows. You " "can force case insensitivity the hard way by pairing characters, eg. to " "ignore *.tmp regardless of case, you could use a pattern " "like *.[Tt][Mm][Pp]." msgstr "" "模式匹配是大小写敏感的,这在 Windows 平台下会出问题。你可以使用成对的字符来强" "制忽略大小写。例如,忽略不记 *.tmp 的大小写,那么你可以使用" "像 *.[Tt][Mm][Pp] 这样的模式。" #. (para) msgid "" "If you want an official definition for globbing, you can find it in the IEEE " "specifications for the shell command language Pattern Matching Notation." msgstr "" "如果你想要一个官方定义的匹配规则。你可以在关于shell命令行语言的IEEE规范Pattern Matching Notation中找" "到。" #. (title) msgid "No Paths in Global Ignore List" msgstr "全局忽略列表中不要使用路径" #. (para) msgid "" "You should not include path information in your pattern. The pattern matching " "is intended to be used against plain file names and folder names. If you want " "to ignore all CVS folders, just add CVS " "to the ignore list. There is no need to specify CVS */CVS " "as you did in earlier versions. If you want to ignore all tmp folders when they exist within a prog folder but " "not within a doc folder you should use the svn:" "ignore property instead. There is no reliable way to achieve this " "using global ignore patterns." msgstr "" "不应该在模式中包含路径信息。模式匹配的目标是纯文本的文件名和文件夹名。如果你想" "忽略所有的 CVS 文件夹,只要向忽略列表中添加 CVS 即可。不再需要像在早先的版本中那样指定 CVS */CVS。" "如果你想忽略所有在 prog 文件夹下的 tmp " "文件夹,但不忽略在 doc 文件夹下的,你应该使用 svn:" "ignore 属性来替代。使用全局忽略模式不能可靠的完成这一目标。" #. (title) msgid "Deleting, Moving and Renaming" msgstr "删除、移动和改名" #. (title) msgid "Explorer context menu for versioned files" msgstr "版本控制文件的菜单浏览" #. (para) msgid "" "Unlike CVS, Subversion allows renaming and moving of files and folders. So " "there are menu entries for delete and rename in the TortoiseSVN submenu. " "" msgstr "" "不像 CVS,Subversion 允许重命名和移动文件和目录。因此在 TortoiseSVN 的子菜单中" "有删除和更名的菜单项。" #. (title) msgid "Deleting files and folders" msgstr "正在删除文件/文件夹" #. (primary) msgid "delete" msgstr "删除" #. (primary) msgid "remove" msgstr "删除" #. (para) msgid "" "Use TortoiseSVNDelete to remove files or folders from subversion." msgstr "" "使用 TortoiseSVN删除 从 subversion 中删除文件或文件夹。" #. (para) msgid "" "When you TortoiseSVNDelete a file, it is removed from your working copy " "immediately as well as being marked for deletion in the repository on next " "commit. The file's parent folder shows a deleted icon overlay. " "Up until you commit the change, you can get the file back using " "TortoiseSVNRevert on the parent folder." msgstr "" "当你 TortoiseSVN删除 一个文件后,该文件立刻就从工作副本中移除,并且被标" "记,在下次提交时从版本库删除。该文件的父文件夹会覆盖上一个已删除重载图标。在你提交修改之前,你可以在父文件夹通过 " "TortoiseSVNSVN 还原 命令找回文件。" #. (para) msgid "" "When you TortoiseSVNDelete a folder, it remains in your working copy, but the " "overlay changes to indicate that it is marked for deletion. Up until you " "commit the change, you can get the folder back using " "TortoiseSVNRevert on the folder itself. This difference in behaviour between files " "and folders is a part of Subversion, not TortoiseSVN." msgstr "" "当你TortoiseSVN删除一个文件夹,它仍旧在你的工作副本中,但是重载图标指出" "了它标记为删除。在你提交修改之前,你可以通过 " "TortoiseSVNSVN 还原 命令找回文件夹。文件和文件夹处理方式的区别是 " "Subversion 的特性,与 TortoiseSVN 无关。" #. (para) msgid "" "If you want to delete an item from the repository, but keep it locally as an " "unversioned file/folder, use Extended Context MenuDelete (keep local). You have " "to hold the Shift key while right clicking on the item in " "the explorer list pane (right pane) in order to see this in the extended " "context menu." msgstr "" "如果你想从版本库删除项目,但是在本地作为非版本控制的文件/文件夹保留,可以使用 " "扩展右键菜单删除(保留本地副本)。为了看到扩展右键菜单,当你在文件管理器列表窗格(右窗" "格)中的项目上点击右键时,必须同时按下 Shift 键。" #. (para) msgid "" "If a file is deleted via the explorer instead of using " "the TortoiseSVN context menu, the commit dialog shows those files and lets " "you remove them from version control too before the commit. However, if you " "update your working copy, Subversion will spot the missing file and replace " "it with the latest version from the repository. If you need to delete a " "version-controlled file, always use TortoiseSVNDelete so that Subversion " "doesn't have to guess what you really want to do." msgstr "" "如果一个 文件 是通过浏览器而不是使用TortoiseSVN 快捷菜单" "被删除,提交对话框也会显示这些文件并让你在提交前把他们从版本控制中移除。可是," "如果你更新你的工作副本, Subversion 将会混淆这个丢失文件并替换他为版本库中的最" "新版本。因此,如果你需要删除一个版本控制下的文件,请始终使用" "TortoiseSVNDelete保证 Subversion不去猜测你到底想干什么。" #. (para) msgid "" "If a folder is deleted via the explorer instead of using " "the TortoiseSVN context menu, your working copy will be broken and you will " "be unable to commit. If you update your working copy, Subversion will replace " "the missing folder with the latest version from the repository and you can " "then delete it the correct way using TortoiseSVNDelete." msgstr "" "如果一个 目录 是通过浏览器而不是使用TortoiseSVN 快捷菜单" "被删除,你的工作副本将回被损坏,并且你将不能提交。如果你更新你的工作副本,如果" "你更新你的工作副本, Subversion 将用版本库中的最新版本替换已丢失目录。接下来你" "就可以使用TortoiseSVNDelete这种正确的方法来删除它了。" #. (title) msgid "Getting a deleted file or folder back" msgstr "找回已删除的文件或目录" #. (para) msgid "" "If you have deleted a file or a folder and already committed that delete " "operation to the repository, then a normal TortoiseSVNRevert can't bring it back " "anymore. But the file or folder is not lost at all. If you know the revision " "the file or folder got deleted (if you don't, use the log dialog to find out) " "open the repository browser and switch to that revision. Then select the file " "or folder you deleted, right-click and select Context " "MenuCopy to... as the " "target for that copy operation select the path to your working copy." msgstr "" "如果你删除了洋文件或目录并已经提交该删除操作到版本库,那么 一个常规的" "TortoiseSVNRevert已不能再将其找回。但是该文件或目录并没有完全丢失。如果你知道该被删" "除文件或目录的版本(如果不能,使用日志对话框来查找出来),打开数据仓库的浏览器," "并选择那个版本。然后选择你删除的文件或目录,右键并选择" "Context MenuCopy to...作为目标执行复制操作,然后选择你的工作副本的路径。" #. (title) msgid "Moving files and folders" msgstr "移动文件和文件夹" #. (primary) #. (primary) #. (primary) msgid "rename" msgstr "改名" #. (primary) msgid "move" msgstr "移动" #. (para) msgid "" "If you want to do a simple in-place rename of a file or folder, use " "Context MenuRename... Enter the new name for the item and you're done." msgstr "" "如果你仅想重命名文件或文件夹,使用 右键菜单改名... 为此条目输入新的名称就" "可以了。" #. (para) msgid "select the files or directories you want to move" msgstr "选择你要移动的文件或目录" #. (para) msgid "" "in the popup menu select Context MenuSVN Move versioned files here" msgstr "" "在弹出菜单选择右键菜单SVN 移动版本" "控制的条目到当前位置。" #. (para) msgid "" "If you want to move files around inside your working copy, perhaps to a " "different sub-folder, use the right-mouse drag-and-drop handler: " msgstr "" "如果你想在工作副本中移动文件,可能是移动到一个不同的子文件夹下,那么使用鼠标右" "键拖拽: " #. (title) msgid "Commit the parent folder" msgstr "提交父目录" #. (para) msgid "" "Since renames and moves are done as a delete followed by an add you must " "commit the parent folder of the renamed/moved file so that the deleted part " "of the rename/move will show up in the commit dialog. If you don't commit the " "removed part of the rename/move, it will stay behind in the repository and " "when your co-workers update, the old file will not be removed. i.e. they will " "have both the old and the new copies." msgstr "" "既然重命名和移动都是像添加之后跟随着删除一样被执行,你必需提交该重命名/移动文" "件的父文件夹,所以重命名/移动的删除部分将出现在提交对话框中。如果你不提交重命" "名/移动的已删除部分,他将保留在仓库中并且你的同组人更新工作副本时,该文件也不" "会被删除。例如,他们将有两个一老一新的副本。" #. (para) msgid "" "You must commit a folder rename before changing any of " "the files inside the folder, otherwise your working copy can get really " "messed up." msgstr "" "你必须在重命名文件夹后立刻进行提交,在提交前不要更改文件" "夹下的任何文件,不然你的工作副本就会真的混淆。" #. (para) msgid "" "You can also use the repository browser to move items around. Read to find out more." msgstr "" "你也可以使用版本库浏览器在版本库中移动条目。阅读 以获得更多信息。" #. (title) msgid "Do Not SVN Move Externals" msgstr "不要使用 SVN 移动外部连接" #. (para) msgid "" "You should not use the TortoiseSVN Move or Rename commands on a folder which has been " "created using svn:externals. This action would cause the " "external item to be deleted from its parent repository, probably upsetting " "many other people. If you need to move an externals folder you should use an " "ordinary shell move, then adjust the svn:externals " "properties of the source and destination parent folders." msgstr "" "你不应该用 TortoiseSVN 的移动或" "改名命令作用在用 svn:externals 创建的" "目录上。因为这个动作可能会导致外部元素(item)从它的父版本库中删除,这可能会使其" "它人烦恼。如果你需要移动外部目录,你应该使用普通的外壳移动,然后调整源和目的之" "父目录的 svn:externals 属性。" #. (title) msgid "Changing case in a filename" msgstr "改变文件名称大小写" #. (primary) msgid "case change" msgstr "大小写改变" #. (para) msgid "" "Making case-only changes to a filename is tricky with Subversion on Windows, " "because for a short time during a rename, both filenames have to exist. As " "Windows has a case-insensitive file system, this does not work using the " "usual Rename command." msgstr "" "在 Windows 中,使用 Subversion 修改文件名称的大小写需要小技巧,因为在改名期" "间,两个文件名称需要同时存在。因为 Windows 的文件系统是大小写不敏感的,所以使" "用平常的改名命令是不能工作的。" #. (para) msgid "" "Fortunately there are (at least) two possible methods to rename a file " "without losing its log history. It is important to rename it within " "subversion. Just renaming in the explorer will corrupt your working copy!" msgstr "" "这里(至少)有两种可能的解决方案来重命名文件而不丢失它的日志记录。在 subversion " "里重命名是很重要的。仅在 Windows 资源管理器中重命名将会损坏你的工作副本!" #. (para) msgid "Commit the changes in your working copy." msgstr "提交你工作副本中的改变到版本库" #. (para) msgid "" "Rename the file from UPPERcase to upperCASE directly in the repository using " "the repository browser." msgstr "使用版本库的浏览器立即重命名该文件的大写(小写)为小写(大写)" #. (para) msgid "Update your working copy." msgstr "更新你的工作副本" #. (para) msgid "Solution A) (recommended) " msgstr "解决方案 A)(推荐) " #. (para) msgid "" "Rename from UPPERcase to UPPERcase_ with the rename command in the " "TortoiseSVN submenu." msgstr "使用TortoiseSVN子菜单中的重命名命令将UPPERcase重命名为UPPERcase_ 格式" #. (para) #. (para) msgid "Commit the changes." msgstr "提交该更改" #. (para) msgid "Rename from UPPERcase_ to upperCASE." msgstr "将UPPERcase_重命名为upperCASE格式" #. (para) msgid "Solution B) " msgstr "解决方案 B) " #. (title) msgid "Dealing with filename case conflicts" msgstr "处理文件名称大小写冲突" #. (para) msgid "" "If the repository already contains two files with the same name but differing " "only in case (e.g. TEST.TXT and test.txt), you will not be able to update or checkout the parent directory " "on a Windows client. Whilst Subversion supports case-sensitive filenames, " "Windows does not." msgstr "" "万一在你的版本库中有两个名字相同但大小拼写不同(例如: TEST.TXTtest.txt)的文件,你是不能在 Windows 客户端更" "新或者检出该包含该文件的目录的。当 Subversion 支持大小写敏感的文件名时," "Windows 不支持。" #. (para) msgid "" "This sometimes happens when two people commit, from separate working copies, " "files which happen to have the same name, but with a case difference. It can " "also happen when files are committed from a system with a case-sensitive file " "system, like Linux." msgstr "" "它偶尔在两个人在独立的工作副本提交时发生,文件名称相同,只有大小写不同。它也会" "在具有大小写敏感的文件系统的系统中提交文件时发生,例如 Linux。" #. (para) msgid "" "In that case, you have to decide which one of them you want to keep and " "delete (or rename) the other one from the repository." msgstr "" "如果是那样的话,你得决定在这个版本库里的哪一个文件是你想保留的,哪一个是要删除" "(或重命名)的" #. (title) msgid "Preventing two files with the same name" msgstr "防止两个文件名字相同" #. (para) msgid "" "There is a server hook script available at: http://svn.collab.net/" "repos/svn/trunk/contrib/hook-scripts/ that will prevent " "checkins which result in case conflicts." msgstr "" "这有一个有用的服务器端脚本在http://svn.collab.net/repos/svn/" "trunk/contrib/hook-scripts/将会防止检入拼写(大小写)冲突文" "件。" #. (title) msgid "Repairing File Renames" msgstr "修复文件改名" #. (para) msgid "" "Sometimes your friendly IDE will rename files for you as part of a " "refactoring exercise, and of course it doesn't tell Subversion. If you try to " "commit your changes, Subversion will see the old filename as missing and the " "new one as an unversioned file. You could just check the new filename to get " "it added in, but you would then lose the history tracing, as Subversion does " "not know the files are related." msgstr "" "有时候你的IDE会因为执行反射操作,改名文件,当然它不能告诉Subversion。如果你尝" "试提交修改,Subversion会发现丢失了老文件,新增了未版本控制的新文件。你可以简单" "的增加新文件,但是你将丢失历史记录,因为Subversion不知道这些文件的关系。" #. (para) msgid "" "A better way is to notify Subversion that this change is actually a rename, " "and you can do this within the Commit and " "Check for Modifications dialogs. Simply select both the " "old name (missing) and the new name (unversioned) and use " "Context MenuRepair Move to pair the two files as a rename." msgstr "" "更好的方法是通知Subversion这实际上是改名,你可以在提交和" "检查修改对话框中做此操作。简单选择老文件(丢失的)和新文件" "(未版本控制的),使用右键菜单修复移" "动设置这两个文件是改名关系。" #. (title) msgid "Deleting Unversioned Files" msgstr "删除未版本控制的文件" #. (para) msgid "" "Usually you set your ignore list such that all generated files are ignored in " "Subversion. But what if you want to clear all those ignored items to produce " "a clean build? Usually you would set that in your makefile, but if you are " "debugging the makefile, or changing the build system it is useful to have a " "way of clearing the decks." msgstr "" "通常你可以在Subversion中设置自己的忽略列表,例如忽略所有产生的文件。但是你如何" "清理这些忽略的项目,从而产生一个干净的构建呢?通常你在makefile中清理,但是如果" "你在调试makefile,或者修改构建系统,那么有一个清理方法是极为有用的。" #. (para) msgid "" "TortoiseSVN provides just such an option using Extended " "Context MenuDelete unversioned items.... You have to hold the Shift while right clicking " "on a folder in the explorer list pane (right pane) in order to see this in " "the extended context menu. This will produce a dialog which lists all " "unversioned files anywhere in your working copy. You can then select or " "deselect items to be removed." msgstr "" "TortoiseSVN 提供了使用扩展上下文菜单删除未版本控制的项目...来清理" "工作副本。你可以在目录上右键操作时,保持 Shift按下,就可以看" "到这个上下文菜单。它会出现一个对话框,列出工作副本中的所有未版本控制的文件。你" "可以选择或取消删除的项目。" #. (para) msgid "" "When such items are deleted, the recycle bin is used, so if you make a " "mistake here and delete a file that should have been versioned, you can still " "recover it." msgstr "" "当删除这些项目时,使用了垃圾箱。所以如果你犯了错误,删除了应该版本控制的文件," "你仍旧可以恢复。" #. (title) msgid "Undo Changes" msgstr "撤消更改" #. (primary) #. (primary) msgid "revert" msgstr "恢复" #. (primary) msgid "undo" msgstr "撤消" #. (title) msgid "Revert dialog" msgstr "恢复对话框" #. (para) msgid "" "If you want to undo all changes you made in a file since the last update you " "need to select the file, right click to pop up the context " "menu and then select the command TortoiseSVNRevert A dialog will pop up " "showing you the files that you've changed and can revert. Select those you " "want to revert and click on OK. " msgstr "" "如果你想要撤消一个文件自上次更新后的所有的变更,你需要选择该文件, 右键" "点击弹出右键菜单,然后选择TortoiseSVNSVN 还原命令,将会弹出一个对话" "框显示你已经变更并能恢复的文件。选择那些你想要恢复的然后按确定" #. (para) msgid "" "If you want to undo a deletion or a rename, you need to use Revert on the " "parent folder as the deleted item does not exist for you to right-click on." msgstr "" "如果你想撤销删除或者更名操作,因为被删除的条目已经不存在了,你需要右键点击上一" "层文件夹来进行还原操作。" #. (para) msgid "" "If you want to undo the addition of an item, this appears in the context menu " "as TortoiseSVNUndo add.... This is really a revert as well, but the name has " "been changed to make it more obvious." msgstr "" "如果你想撤销增加条目,在右键菜单中选择 TortoiseSVN撤销增加。其实这就是还原操作," "只是起了一个更显而易见的名字而已。" #. (para) #. (para) msgid "" "The columns in this dialog can be customized in the same way as the columns " "in the Check for modifications dialog. Read for further details." msgstr "" "在这一对话框中,纵列和在 检查修改对话框中的纵列同样是可以" "定制的。更多细节请阅读 " #. (title) msgid "Undoing Changes which have been Committed" msgstr "取消已经提交的改变" #. (para) msgid "" "Revert will only undo " "your local changes. It does not undo any changes which " "have already been committed. If you want to undo all the changes which were " "committed in a particular revision, read " "for further information." msgstr "" "Revert仅能撤消你本地的变" "更。他能撤消已经提交的的变更。如果你想撤消所有的包括已" "经提交到一个特定版本的变更,请阅读 获得更" "多信息。" #. (title) msgid "Revert is Slow" msgstr "还原较慢" #. (para) msgid "" "When you revert changes you may find that the operation takes a lot longer " "than you expect. This is because the modified version of the file is sent to " "the recycle bin, so you can retrieve your changes if you reverted by mistake. " "However, if your recycle bin is full, Windows takes a long time to find a " "place to put the file. The solution is simple: either empty the recycle bin " "or deactivate the Use recycle bin when reverting box in " "TortoiseSVN's settings." msgstr "" "当你进行还原修改时,你会发现操作所花的时间比你预期的要长。这是因为修改过的文件" "被扔到回收站,所以当误还原时你可以找回更改后的文件。不管怎样,如果你的回收站已" "经满了,Windows 会花一些时间来找个地方放置文件。解决方案很简单: 或者清空回收" "站,或者在 TortoiseSVN 的设置中取消选中在恢复的时候使用垃圾箱。" #. (title) #. (entry) #. (title) #. (glossterm) msgid "Cleanup" msgstr "清理" #. (primary) msgid "cleanup" msgstr "清理" #. (para) msgid "" "If a Subversion command cannot complete successfully, perhaps due to server " "problems, your working copy can be left in an inconsistent state. In that " "case you need to use TortoiseSVNCleanup on the folder. It is " "a good idea to do this at the top level of the working copy." msgstr "" "也许由于服务器问题,一个Subversion指令不能成功地完成,你的工作副本因此被滞留在" "一个不一致的状态。 那样的话,你需要在该目录上使用" "TortoiseSVN清理命令。在工作副本的根目录使用它是一个好主意。" #. (para) msgid "" "Cleanup has another useful side effect. If a file date changes but its " "content doesn't, Subversion cannot tell whether it has really changed except " "by doing a byte-by-byte comparison with the pristine copy. If you have a lot " "of files in this state it makes acquiring status very slow, which will make " "many dialogs slow to respond. Executing a Cleanup on your working copy will " "repair these broken timestamps and restore status checks to " "full speed." msgstr "" "清理有另外的一个有用的副作用。如果一个文件日期变化了但是它的内容没变," "Subversion 除了逐字节地将该文件和原副本进行对照,不能分清它是否真的变更。 如果" "你有很多这种状态下的文件,将会使获得状态非常慢,还会导致许多会话响应变慢。在你" "的工作副本上执行一个清理命令将会修正这些坏掉的时戳,从而可以全" "速检查它们的状态。" #. (title) msgid "Use Commit Timestamps" msgstr "使用提交时戳" #. (para) msgid "" "Some earlier releases of Subversion were affected by a bug which caused " "timestamp mismatch when you check out with the Use commit " "timestamps option checked. Use the Cleanup command to speed up " "these working copies." msgstr "" "Subversion的一些早期发布中存在一个bug,当你使用使用提交时戳选项检出的时候会造成时戳混乱。使用清理命令可以修正工作副本中的这些问" "题。" #. (title) msgid "Project Settings" msgstr "项目设置" #. (primary) msgid "properties" msgstr "属性" #. (title) msgid "Explorer property page, Subversion tab" msgstr "资源管理器属性页,Subversion 页面" #. (para) msgid "" " Sometimes you want to have more detailed information about a " "file/directory than just the icon overlay. You can get all the information " "Subversion provides in the explorer properties dialog. Just select the file " "or directory and select Windows Menuproperties in the context " "menu (note: this is the normal properties menu entry the explorer provides, " "not the one in the TortoiseSVN submenu!). In the properties dialog box " "TortoiseSVN has added a new property page for files/folders under Subversion " "control, where you can see all relevant information about the selected file/" "directory." msgstr "" "有时你可能想得到关于一个文件/目录的更多的细节信息而不仅是一个" "重载的标志。 你能得到Subversion的属性对话框中浏览到的所有信息。只需选择指定文" "件或目录,然后在文件菜单中选择Windows 菜单属性(注意: 这是资源管理器提供" "的标准属性菜单,而不是TortoiseSVN 子菜单的其中之一)。在TortoiseSVN 属性对话框" "中已经为在Subversion控制下的文件/目录增加新的属性页。在这里你能看到所有的关于" "选择文件/目录的相关信息。" #. (title) msgid "Subversion Properties" msgstr "Subversion 属性" #. (primary) msgid "Subversion properties" msgstr "Subversion 属性" #. (title) msgid "Subversion property page" msgstr "Subversion 属性页" #. (para) msgid "" " You can read and set the Subversion properties from the " "Windows properties dialog, but also from TortoiseSVNproperties and within " "TortoiseSVN's status lists, from Context menuproperties." msgstr "" " 你可以通过右键菜单属性从 Windows 属性对话框来读" "写 Subversion 属性,这样也能得到 TortoiseSVN 的状态列表。也可以从" "TortoiseSVN属性来读写 Subversion 属性。" #. (para) msgid "" "You can add your own properties, or some properties with a special meaning in " "Subversion. These begin with svn:. svn:externals is such a property; see how to handle externals in ." msgstr "" "你可以添加你自己定义的属性,或者一些在 Subversion 中有特殊含义的属性。这些属性" "以 svn: 开头。svn:externals 就是这一类型" "的属性; 关于如何引用外部条目,请参阅." #. (title) msgid "svn:keywords" msgstr "svn:keywords" #. (primary) msgid "keywords" msgstr "关键字" #. (primary) msgid "expand keywords" msgstr "展开关键字" #. (para) msgid "" "Date of last known commit. This is based on information obtained when you " "update your working copy. It does not check the " "repository to find more recent changes." msgstr "" "已知最后提交的日期。它基于你更新工作副本时获得的信息。它检查版本库查找最新的修改。" #. (para) msgid "Revision of last known commit." msgstr "已知最后提交的版本。" #. (para) msgid "Author who made the last known commit." msgstr "已知最后提交的作者。" #. (para) msgid "The full URL of this file in the repository." msgstr "此文件在版本库中的 URL。" #. (para) msgid "A compressed combination of the previous four keywords." msgstr "上述四个关键字的压缩组合。" #. (para) msgid "" "Subversion supports CVS-like keyword expansion which can be used to embed " "filename and revision information within the file itself. Keywords currently " "supported are: " msgstr "" "Subversion 支持类似 CVS 的关键字扩展,用来在文件中嵌入文件名称和版本信息。当前" "支持的关键字有:" #. (para) msgid "" "To find out how to use these keywords, look at the svn:keywords section in the Subversion " "book, which gives a full description of these keywords and how to enable and " "use them." msgstr "" "关键字的用法参见 Subversion 手册的 svn:keywords " "section,它给出了这些关键字的完整描述、如何启用和使用的方" "法。" #. (para) msgid "" "For more information about properties in Subversion see the Special Properties." msgstr "" "更多的关于 Subversion 中属性的信息可以看Special Properties。" #. (title) msgid "Adding and Editing Properties" msgstr "增加和编辑属性" #. (title) msgid "Adding properties" msgstr "增加属性" #. (para) msgid "" " To add a new property, first click on Add.... Select the required property name from the combo box, or type in a " "name of your own choice, then enter a value in the box below. Properties " "which take multiple values, such as an ignore list, can be entered on " "multiple lines. Click on OK to add that property to " "the list." msgstr "" "为了增加新属性,先单击增加...,从组合框中" "选择需要的属性名称,或者输入你自定义的名称,然后在下面的编辑框内输入取值。有多" "个取值的属性,例如忽略列表,肯呢个输入多行。单极确认将" "属性增加到属性列表。" #. (para) msgid "" "If you want to apply a property to many items at once, select the files/" "folders in explorer, then select Context menuproperties" msgstr "" "如果你想一次性设置许多文件的属性,在资源管理器中选择文件/文件夹,然后选择" "上下文菜单属性。" #. (para) msgid "" "If you want to apply the property to every file and " "folder in the hierarchy below the current folder, check the " "Recursive checkbox." msgstr "" "如果你想设置当前文件夹内的全部文件和文件夹,选中" "递归检查框。" #. (para) msgid "" "Some properties, for example svn:needs-lock, can only be " "applied to files, so the property name doesn't appear in the drop down list " "for folders. You can still apply such a property recursively to all files in " "a hierarchy, but you have to type in the property name yourself." msgstr "" "一些属性,例如svn:needs-lock只能用于文件,所以它们在文件夹" "的属性下拉列表内不会出现。你仍旧可以递归的设置目录树中所有文件的属性,但是需要" "你自己输入属性名称。" #. (para) msgid "" "If you wish to edit an existing property, select that property from the list " "of existing properties, then click on Edit...." msgstr "" "如果你想编辑一个已有属性,在已有属性列表中选择它,然后单击编辑...即可。" #. (para) msgid "" "If you wish to remove an existing property, select that property from the " "list of existing properties, then click on Remove." msgstr "" "如果你想删除已有属性,在已有属性列表中选择它,然后单击删除即可。" #. (para) msgid "" "The svn:externals property can be used to pull in other " "projects from the same repository or a completely different repository. For " "more information, read ." msgstr "" "属性svn:externals可以用来下载位于同一版本库或不同版本库的其" "它工程。阅读以获得更多信息。" #. (title) msgid "Exporting and Importing Properties" msgstr "导出和导入属性" #. (para) msgid "" "Often you will find yourself applying the same set of properties many times, " "for example bugtraq:logregex. To simplify the process of " "copying properties from one project to another, you can use the Export/Import " "feature." msgstr "" "通常,你会发现你要设置同一组属性很多遍,例如 bugtraq:logregex。要想简单的完成从一个项目复制属性到另一个项目,你可以使用导出/导入特" "性。" #. (para) msgid "" "From the file or folder where the properties are already set, use " "TortoiseSVNproperties, select the properties you wish to export and click " "on Export.... You will be prompted for a filename " "where the property names and values will be saved." msgstr "" "在已经设置了属性的文件或文件上使用TortoiseSVN属性,选择你想要导出的属性并单" "击导出...。然后会提示你输入文件名,属性名和属性值会保存" "在此文件中。" #. (para) msgid "" "From the folder(s) where you wish to apply these properties, use " "TortoiseSVNproperties and click on Import.... You " "will be prompted for a filename to import from, so navigate to the place you " "saved the export file previously and select it. The properties will be added " "to the folders non-recursively." msgstr "" "在你想要应用这些属性的文件夹上使用TortoiseSVN属性并单击导入...。然后会提示你选择从哪个文件导入,找到之前你保存导出文件的地方并选中" "它。属性会添加到文件夹,不递归。" #. (para) msgid "" "If you want to add properties to a tree recursively, follow the steps above, " "then in the property dialog select each property in turn, click on " "Edit..., check the Apply property " "recursively box and click on OK." msgstr "" "如果你想递归的添加属性到目录树,按照上述的步骤,然后在属性对话框依次选中每一个" "需要递归的属性,单击编辑...,选中递归应用该属" "性并单击确定。" #. (para) msgid "" "The Import file format is binary and proprietary to TortoiseSVN. Its only " "purpose is to transfer properties using Import and Export, so there is no " "need to edit these files." msgstr "" "导入文件是二进制格式的,并且只被 TortoiseSVN 所使用。它唯一的用途是在导入和导" "出命令之间传递属性,所以不要编辑这些文件。" #. (title) msgid "Binary Properties" msgstr "二进制属性" #. (para) msgid "" "TortoiseSVN can handle binary property values using files. To read a binary " "property value, Save... to a file. To set a binary " "value, use a hex editor or other appropriate tool to create a file with the " "content you require, then Load... from that file." msgstr "" "TortoiseSVN可以处理文件的二进制属性。使用保存...到文件" "读取二进制属性值。使用十六进制编辑器或其它适当的工具创建文件,然后用从文件" "加载...设置二进制值为此文件的内容。" #. (para) msgid "" "Although binary properties are not often used, they can be useful in some " "applications. For example if you are storing huge graphics files, or if the " "application used to load the file is huge, you might want to store a " "thumbnail as a property so you can obtain a preview quickly." msgstr "" "尽管二进制文件不经常使用,它们在一些程序中是有用的。举例来说,如果你存储了巨大" "的图形文件,或者用程序加载的文件巨大,你可能想将缩略图作为属性存储,于是你可以" "快速的预览。" #. (title) msgid "Automatic property setting" msgstr "自动属性设置" #. (primary) msgid "auto-props" msgstr "auto-props" #. (para) msgid "" "You can configure Subversion and TortoiseSVN to set properties automatically " "on files and folders when they are added to the repository. There are two " "ways of doing this." msgstr "" "你可以配置 Subversion 和 TortoiseSVN 在文件和文件夹添加到版本库时自动设置属" "性。这里有两种实现方法。" #. (para) msgid "" "You can edit the subversion configuration file to enable this feature on your " "client. The General page of TortoiseSVN's settings " "dialog has an edit button to take you there directly. The config file is a " "simple text file which controls some of subversion's workings. You need to " "change two things: firstly in the section headed miscellany uncomment the line enable-auto-props = yes. " "Secondly you need to edit the section below to define which properties you " "want added to which file types. This method is a standard subversion feature " "and works with any subversion client. However it has to be defined on each " "client individually - there is no way to propagate these settings from the " "repository." msgstr "" "你可以在编辑 subversion 配置文件来在客户端启用这一特性。在 TortoiseSVN 配置对" "话框的常规设置页中有一个编辑按钮可以直接打开这个文件。配" "置文件是一个普通的文本文件,它控制着 subversion 的某些运作。你需要修改两处: 首" "先在 miscellany 打头的这一节中取消注释这一行: " "enable-auto-props = yes。其次,你需要编辑后面的一节,定义你" "想为哪些文件添加哪些属性。这个方法是标准的 subversion 特性而且对任何 " "subversion 客户端有效。不过它需要在每一个客户端进行定义 - 没有办法从版本库来设" "置这些参数。" #. (para) msgid "" "An alternative method is to set the tsvn:autoprops " "property on folders, as described in the next section. This method only works " "for TortoiseSVN clients, but it does get propagated to all working copies on " "update." msgstr "" "另一个办法是在文件夹上设置 tsvn:autoprops 属性,将会在下一" "节详细描述。这个方法仅对 TortoiseSVN 客户端有效,但是它可以在更新时应用于所有" "的工作副本。" #. (para) msgid "" "Whichever method you choose, you should note that auto-props are only applied " "to files at the time they are added to the repository. Auto-props will never " "change the properties of files which are already versioned." msgstr "" "无论你选择哪一种方法,你应该注意: 自动属性设置仅在文件被添加到版本库时生效。自" "动属性设置不会改变已经版本控制的文件的属性。" #. (para) msgid "" "If you want to be absolutely sure that new files have the correct properties " "applied, you should set up a repository pre-commit hook to reject commits " "where the required properties are not set." msgstr "" "如果你想确保所有的新文件设置了正确的属性,你应该设置版本库的 pre-commit 钩子脚" "本来拒绝那些没有设置必要属性的提交。" #. (title) msgid "Commit properties" msgstr "提交属性" #. (para) msgid "" "Subversion properties are versioned. After you change or add a property you " "have to commit your changes." msgstr "Subversion 属性是受版本控制的。在你改变或增加属性后必须提交。" #. (title) msgid "Conflicts on properties" msgstr "属性冲突" #. (para) msgid "" "If there's a conflict on committing the changes, because another user has " "changed the same property, Subversion generates a .prej " "file. Delete this file after you have resolved the conflict." msgstr "" "如果因为其他用户已经提交了同样的属性,提交时出现冲突,Subversion 会产生一个 " ".prej 文件。在你解决冲突后,请删除此文件。" #. (title) msgid "TortoiseSVN Project Properties" msgstr "TortoiseSVN 项目属性" #. (primary) msgid "project properties" msgstr "工程属性" #. (primary) msgid "TortoiseSVN properties" msgstr "TortoiseSVN 属性" #. (para) msgid "" "tsvn:logminsize sets the minimum length of a log message " "for a commit. If you enter a shorter message than specified here, the commit " "is disabled. This feature is very useful for reminding you to supply a proper " "descriptive message for every commit. If this property is not set, or the " "value is zero, empty log messages are allowed." msgstr "" "tsvn:logminsize设置提交日志的最小长度。如果你输入的日志短于" "预设值,提交会被禁止。这个属性对于提醒你为每次提交提供一个适当的描述信息非常有" "用。如果不设置这个属性,或者设置为0,那么就允许空提交信息。" #. (para) msgid "" "tsvn:lockmsgminsize sets the minimum length of a lock " "message. If you enter a shorter message than specified here, the lock is " "disabled. This feature is very useful for reminding you to supply a proper " "descriptive message for every lock you get. If this property is not set, or " "the value is zero, empty lock messages are allowed." msgstr "" "tsvn:lockmsgminsize设置锁定日志的最小长度。如果你输入的日志" "短于预设值,加锁会被禁止。这个属性对于提醒你为每次加锁提供一个适当的描述信息非" "常有用。如果不设置这个属性,或者设置为0,那么就允许空加锁信息。" #. (para) msgid "" "tsvn:logwidthmarker is used with projects which require " "log messages to be formatted with some maximum width (typically 80 " "characters) before a line break. Setting this property to a non-zero will do " "2 things in the log message entry dialog: it places a marker to indicate the " "maximum width, and it disables word wrap in the display, so that you can see " "whether the text you entered is too long. Note: this feature will only work " "correctly if you have a fixed-width font selected for log messages." msgstr "" "tsvn:logwidthmarker用在要求日志信息被格式化为在最大宽度(典" "型是80字符)处换行非常有用。设置此属性为大于0的值会在日志消息对话框中做两件事: " "放置一个标记指示最大宽度,和禁止自动换行,于是你可以看到输入的信息是否太长。注" "意: 这个特性仅在你选择的消息使用固定宽度字体时才能正确工作。" #. (para) msgid "" "tsvn:logtemplate is used with projects which have rules " "about log message formatting. The property holds a multi-line text string " "which will be inserted in the commit message box when you start a commit. You " "can then edit it to include the required information. Note: if you are also " "using tsvn:logminsize, be sure to set the length longer " "than the template or you will lose the protection mechanism." msgstr "" "tsvn:logtemplate在需要定义日志消息格式化规则的工程中使用。" "在你开始提交时,这个属性的多行消息会被插入日志消息编辑框。你可以编辑它以便包含" "需要的信息。注意: 如果你使用了tsvn:logminsize属性,请确认这" "个长度大于模版的长度,不然就会失去其保护作用。" #. (para) msgid "" "Subversion allows you to set autoprops which will be applied " "to newly added or imported files, based on the file extension. This depends " "on every client having set appropriate autoprops in their subversion " "configuration file. tsvn:autoprops can be set on folders " "and these will be merged with the user's local autoprops when importing or " "adding files. The format is the same as for subversion autoprops, e.g. " "*.sh = svn:eol-style=native;svn:executable sets two " "properties on files with the .sh extension." msgstr "" "Subversion 允许你设置 自动属性(autoprops),它基于文件扩展名,对" "新增文件或导入的文件生效。这依赖于每个客户端在 Subversion 配置文件中设置适当的" "自动属性。tsvn:autoprops 可以对文件夹设置,当新增文件或导入" "文件时,它会与用户的本地自动属性合并。其格式与 subversion 的自动属性相同,例" "如,*.sh = svn:eol-style=native;svn:executable为扩展名为 " ".sh 的文件设置两个属性。" #. (para) msgid "" "If there is a conflict between the local autoprops and tsvn:" "autoprops, the project settings take precedence because they are " "specific to that project." msgstr "" "如果本地 autoprops 与 tsvn:autoprops 冲突,项目设置优先(因" "为它们是针对此项目的)。" #. (para) msgid "" "In the Commit dialog you have the option to paste in the list of changed " "files, including the status of each file (added, modified, etc). " "tsvn:logfilelistenglish defines whether the file status is " "inserted in English or in the localized language. If the property is not set, " "the default is true." msgstr "" "在提交对话框,你可以粘贴修改的文件列表,包含每个文件的状态(增加,修改等)。" "tsvn:logfilelistenglish定义了文件状态用英文插入,还是用本机" "语言插入。如果此属性没有设置,默认值是 true。" #. (para) msgid "" "TortoiseSVN can use spell checker modules which are also used by OpenOffice " "and Mozilla. If you have those installed this property will determine which " "spell checker to use, i.e. in which language the log messages for your " "project should be written. tsvn:projectlanguage sets the " "language module the spell checking engine should use when you enter a log " "message. You can find the values for your language on this page: MSDN: " "Language Identifiers." msgstr "" "TortoiseSVN可以使用OpenOffice和Mozilla使用的拼写检查模块。如果你安装了这些模" "块,那么这个属性将检测使用哪个拼写检查模块。也就是,你的项目的日志信息用的语" "言。tsvn:projectlanguage设置拼写检查引擎在你输入日志消息的" "时候应该使用什么语言模块。你可以在这个页面找到你的语言的取值: MSDN: 语" "言标示符。" #. (para) msgid "" "You can enter this value in decimal, or in hexadecimal if prefixed with " "0x. For example English (US) can be entered as " "0x0409 or 1033." msgstr "" "你可以用十进制输入取值,如果用0x前缀的话,也可以用十六进" "制。例如英语(美国英语)可以输入0x0409或者1033。" #. (para) msgid "" "The property tsvn:logsummary is used to extract a portion " "of the log message which is then shown in the log dialog as the log message " "summary." msgstr "" "属性 tsvn:logsummary 用于摘录日志的一部分,在日志对话框中显" "示为日志摘要。" #. (para) msgid "" "The value of the tsvn:logsummary property must be set to a " "one line regex string which contains one regex group. Whatever matches that " "group is used as the summary." msgstr "" "属性 tsvn:logsummary 的值必须设置为一行包含一个正则组的正则" "字符串。匹配于这个正则组的任何内容被当作摘要。" #. (para) msgid "" "An example: \\[SUMMARY\\]:\\s+(.*) Will catch everything " "after [SUMMARY] in the log message and use that as the summary." msgstr "" "例如: \\[SUMMARY\\]:\\s+(.*) 将会抓取 [SUMMARY] 后面的所有内容并将其用作摘要。" #. (para) msgid "" "When you want to add a new property, you can either pick one from the list in " "the combo box, or you can enter any property name you like. If your project " "uses some custom properties, and you want those properties to appear in the " "list in the combo box (to avoid typos when you enter a property name), you " "can create a list of your custom properties using tsvn:" "userfileproperties and tsvn:userdirproperties. " "Apply these properties to a folder. When you go to edit the properties of any " "child item, your custom properties will appear in the list of pre-defined " "property names." msgstr "" "当你想增加新属性时,你可以从组合框的下拉列表选取,也可以输入你喜欢的任何属性名" "称。如果你的项目使用了自定义属性,并且想让这些属性出现在组合框的下拉列表中(避" "免输入时拼写错误),你可以使用tsvn:userfileproperties和" "tsvn:userdirproperties创建自定义属性列表。对目录应用这些属" "性,当你编辑其任何子项属性时,你自定义的属性将会在预定义属性名称列表中出现。" #. (para) msgid "" "TortoiseSVN has a few special properties of its own, and these begin with " "tsvn:. " msgstr "" "TortoiseSVN 有自己专用的几个属性,它们都有tsvn:前缀。" "" #. (para) #. (para) msgid "" "Some tsvn: properties require a true/false value. TortoiseSVN also understands yes as a " "synonym for true and no as a synonym " "for false." msgstr "" "一些 tsvn: 属性需要 true/false 值。" "TortoiseSVN 也理解 yestrue 的同义" "词,nofalse 的同义词。" #. (para) msgid "" "TortoiseSVN can integrate with some bug tracking tools. This uses project " "properties that start with bugtraq:. Read for further information." msgstr "" "TortoiseSVN 可以与一些 BUG 跟踪工具集成。它使用 bugtraq: 开" "始的项目属性。阅读以获得更多信息。" #. (para) msgid "" "It can also integrate with some web-based repository browsers, using project " "properties that start with webviewer:. Read for further information." msgstr "" "它也与一些基于 WEB 的版本库浏览器集成,使用 webviewer: 开始" "的项目属性。阅读以获得更多信息。" #. (title) msgid "Set the project properties on folders" msgstr "设置文件夹的项目属性" #. (para) msgid "" "These special project properties must be set on folders " "for the system to work. When you commit a file or folder the properties are " "read from that folder. If the properties are not found there, TortoiseSVN " "will search upwards through the folder tree to find them until it comes to an " "unversioned folder, or the tree root (eg. C:\\) is found. " "If you can be sure that each user checks out only from e.g trunk/ and not some sub-folder, then it is sufficient to set the " "properties on trunk/. If you can't be sure, you should " "set the properties recursively on each sub-folder. A property setting deeper " "in the project hierarchy overrides settings on higher levels (closer to " "trunk/)." msgstr "" "这些特别的项目属性只能设置在文件夹上才能生效。当你提交文" "件或文件夹时,这些属性从文件夹读取。如果没有发现这些属性,TortoiseSVN 会向上级" "文件夹搜索,直到未版本控制的文件夹,或到达根目录(例如 C:\\) 。如果你确认每个用户都是从同一个文件夹检出,例如 trunk/,而不是其它子文件夹,那么只在 trunk/ 设置属性就" "足够了。如果你不能确定,那么应当递归的设置每个子文件夹。深层的设置覆盖高层的设" "置 (靠近 trunk/)。" #. (para) msgid "" "For project properties only you can use the " "Recursive checkbox to set the property to all sub-" "folders in the hierarchy, without also setting it on all files." msgstr "" "对于tsvn:属性,例如 tsvn:," "bugtraq:webviewer:,你只能" "对于所有子文件夹使用递归复选框设置属性,不用将" "这些属性设置在文件上。" #. (para) msgid "" "When you add new sub-folders using TortoiseSVN, any project properties " "present in the parent folder will automatically be added to the new child " "folder too." msgstr "" "当你使用 TortoiseSVN 增加新的目录时,任何父目录的项目属性都会被自动增加到子目" "录。" #. (para) msgid "" "Although TortoiseSVN's project properties are extremely useful, they only " "work with TortoiseSVN, and some will only work in newer versions of " "TortoiseSVN. If people working on your project use a variety of Subversion " "clients, or possibly have old versions of TortoiseSVN, you may want to use " "repository hooks to enforce project policies. project properties can only " "help to implement a policy, they cannot enforce it." msgstr "" "尽管 TortoiseSVN 的项目属性很有用,但它们只适用于 TortoiseSVN,而且一些只是对" "于新版本的 TortoiseSVN 才生效。如果你的项目中的人使用各种 Subversion 客户端," "或者使用低版本的 TortoiseSVN,你可能要使用版本库钩子强制执行项目策略。项目属性" "只能帮助你实现策略,不能强制执行。" #. (title) msgid "External Items" msgstr "外部条目" #. (primary) msgid "external repositories" msgstr "外部版本库" #. (primary) #. (primary) msgid "externals" msgstr "外部" #. (para) msgid "" "Sometimes it is useful to construct a working copy that is made out of a " "number of different checkouts. For example, you may want different files or " "subdirectories to come from different locations in a repository, or perhaps " "from different repositories altogether. If you want every user to have the " "same layout, you can define the svn:externals properties " "to pull in the specified resource at the locations where they are needed." msgstr "" "有时候,构建一个需要不同检出的工作目录是很有用的。举例来说,你也许需要来自版本" "库的不同位置的别的文件或子目录,或者可能完全来自不同的版本库。如果你需要每个用" "户具有相同的目录结构,你可以定义 svn:externals 属性来获取特" "定的资源到你需要的地方。" #. (title) msgid "External Folders" msgstr "外部文件夹" #. (para) msgid "" "Let's say you check out a working copy of /project1 to " "D:\\dev\\project1. Select the folder D:\\dev" "\\project1, right click and choose " "Windows MenuProperties from the context menu. The Properties Dialog comes " "up. Then go to the Subversion tab. There, you can set properties. Click " "Add.... Select the svn:externals " "property from the combobox and write in the edit box the repository URL in " "the format url folder or if you want to specify a " "particular revision, -rREV url folder You can add multiple " "external projects, 1 per line. Suppose that you have set these properties on " "D:\\dev\\project1: \n" "http://sounds.red-bean.com/repos sounds\n" "http://graphics.red-bean.com/repos/fast%20graphics \"quick graphs\"\n" "-r21 http://svn.red-bean.com/repos/skin-maker skins/toolkit\n" " Now click Set and commit your changes. When " "you (or any other user) update your working copy, Subversion will create a " "sub-folder D:\\dev\\project1\\sounds and checkout the " "sounds project, another sub-folder D:\\dev\\project1\\quick_graphs containing the graphics project, and finally a nested sub-folder " "D:\\dev\\project1\\skins\\toolkit containing revision 21 " "of the skin-maker project." msgstr "" "比如说,你检出了 /project1D:\\dev" "\\project1。选择文件夹D:\\dev\\project1," "右键单击并选择Windows 菜单属性。出现属性对话框。在 " "Subversion 页,你可以设置属性。点击增加...。从组合框选" "择 svn:externals 属性,在编辑框按照 URL 文件夹 格式输入版本库URL,或者你需要一个指定的版本,那么使用 -r版" "本 URL 文件夹。你可以增加多个外部工程,每行一个。假设你为" "D:\\dev\\project1设置了这些属性: \n" "http://sounds.red-bean.com/repos sounds\n" "http://graphics.red-bean.com/repos/fast%20graphics \"quick graphs\"\n" "-r21 http://svn.red-bean.com/repos/skin-maker skins/toolkit\n" " 现在点击 设置,提交你的修改。当你(或其他用户)" "更新工作副本时,Subversion 将会创建子文件夹 D:\\dev\\project1" "\\sounds,并且检出 sounds 工程,另一个子文件夹 D:\\dev" "\\project1\\quick_graphs 包含 graphics 工程,最后一个嵌套的子文件" "夹 D:\\dev\\project1\\skins\\toolkit 包含版本为 21 的 " "skin-maker 工程。" #. (para) msgid "" "URLs must be properly escaped or they will not work, e.g. you must replace " "each space with %20 as shown in the second example above." msgstr "" "URL 必须使用转义字符,否则它们不能正常工作,例如,你必须使用 %20 替代每一个空格符,就像在上面示范的第二条那样。" #. (para) msgid "" "If you want the local path to include spaces or other special characters, you " "can enclose it in double quotes, or you can use the \\ " "(backslash) character as a Unix shell style escape character preceding any " "special character. Of course this also means that you must use / (forward slash) as a path delimiter. Note that this behaviour is new " "in Subversion 1.6 and will not work with older clients." msgstr "" "如果你需要在本地路径中包含空格或其它特殊字符,你可以使用双引号将它们括起来,或" "者你可以使用 Unix shell 风格的转义字符 -- 在特殊字符前添加 \\ (反斜线)。当然这样就意味着你必须使用 / (正斜线)作" "为路径的分隔符。注意:这一特性是在 Subversion 1.6 中新引入的,不支持旧版本的客" "户端程序。" #. (title) msgid "Use explicit revision numbers" msgstr "使用确定的版本号" #. (para) msgid "" "You should strongly consider using explicit revision numbers in all of your " "externals definitions, as described above. Doing so means that you get to " "decide when to pull down a different snapshot of external information, and " "exactly which snapshot to pull. Besides the common sense aspect of not being " "surprised by changes to third-party repositories that you might not have any " "control over, using explicit revision numbers also means that as you backdate " "your working copy to a previous revision, your externals definitions will " "also revert to the way they looked in that previous revision, which in turn " "means that the external working copies will be updated to match they way " "they looked back when your repository was at that " "previous revision. For software projects, this could be the difference " "between a successful and a failed build of an older snapshot of your complex " "code base." msgstr "" "你应当认真考虑在所有外部定义中使用确定的版本号,就像下面介绍的那样。这样做意味" "着当你下载扩展信息的个别快照时你已经作出决定,并且精确的指明了是哪个快照。而且" "你不会为第三方版本库的修改感到惊讶,这些版本库你可能没有任何控制,使用精确的版" "本号能使你回溯工作目录到以前的版本,你的外部定义也遵循此规则,看起来是以前的版" "本,即外部工作副本的更新匹配它们的老版本。对于软件工程," "它是旧版本的复杂代码构建成功或失败的重要区别。" #. (title) msgid "Older svn:externals definitions" msgstr "旧的 svn:externals 定义" #. (para) msgid "" "The format shown here was introduced in Subversion 1.5. You may also see the " "older format which has the same information in a different order. The new " "format is preferred as it supports several useful features described below, " "but it will not work on older clients. The differences are shown in the " "Subversion Book." msgstr "" "这里示范的格式是在 Subversion 1.5 中引入的。你会发现在旧格式中,相同的信息以不" "同的顺序排列。新格式要好一些,因为它支持一些有用的特性,下面会详细描述这些特" "性,但是它不能用于旧版本的客户端程序。新旧格式的区别请参见 Subversion 手册。" #. (para) #. (para) msgid "" "If the external project is in the same repository, any changes you make there " "there will be included in the commit list when you commit your main project." msgstr "" "如果一个外部工程位于同一版本库中,当你向主项目提交你的修改时,你对外部工程做的" "修改也会包含在提交列表中。" #. (para) #. (para) msgid "" "If the external project is in a different repository, any changes you make to " "the external project will be notified when you commit the main project, but " "you have to commit those external changes separately." msgstr "" "如果外部工程位于不同的版本库,当你向主项目提交你的修改时,你对外部工程做的修改" "会被通报,但是你必须单独的提交这些外部工程的修改。" #. (para) msgid "" "If you use absolute URLs in svn:externals definitions and " "you have to relocate your working copy (i.e., if the URL of your repository " "changes), then your externals won't change and might not work anymore." msgstr "" "如果你在 svn:externals 定义中使用绝对 URL 并且你不得不重定" "位你的工作副本(例如,版本库的 URL 改变了),然后你的外部定义并不会改变,它可能" "就失效了。" #. (para) msgid "" "To avoid such problems, Subversion clients version 1.5 and higher support " "relative external URLs. Four different methods of specifying a relative URL " "are supported. In the following examples, assume we have two repositories: " "one at http://example.com/svn/repos-1 " "and another at http://example.com/svn/repos-2. We have a checkout of http://example." "com/svn/repos-1/project/trunk into C:\\Working and the svn:externals property is set on trunk." msgstr "" "要避免这样的问题,Subversion 客户端程序 1.5 版及更高版本支持相对外部 URL。四种" "不同的指定相对 URL 的方式被支持。在下面的例子中,假设我们有两个版本库: 一个位" "于 http://example.com/svn/repos-1,另一" "个位于 http://example.com/svn/repos-2。" "我们签出 http://example.com/svn/repos-1/project/" "trunkC:\\Working 并且在 trunk 设置 " "svn:externals 属性。" #. (term) msgid "Relative to parent directory" msgstr "相对于父目录" #. (para) msgid "" "These URLs always begin with the string ../ for example: " "\n" "../../widgets/foo common/foo-widget\n" " This will extract http://example.com/svn/" "repos-1/widgets/foo into C:\\Working\\common\\foo-" "widget." msgstr "" "这些 URL 始终以字符串 ../ 开头,例如: \n" "../../widgets/foo common/foo-widget\n" " 这将会取出 http://example.com/svn/repos-1/" "widgets/fooC:\\Working\\common\\foo-widget。" #. (para) msgid "" "Note that the URL is relative to the URL of the directory with the " "svn:externals property, not to the directory where the " "external is written to disk." msgstr "" "注意: URL 是相对于具有 svn:externals 属性的目录所对应的 " "URL,而不是外部条目将要写入的硬盘目录。" #. (term) msgid "Relative to repository root" msgstr "相对于版本库的根" #. (para) msgid "" "These URLs always begin with the string ^/ for example: " "\n" "^/widgets/foo common/foo-widget\n" " This will extract http://example.com/svn/" "repos-1/widgets/foo into C:\\Working\\common\\foo-" "widget." msgstr "" "这些 URL 始终以字符串 ^/ 开头,例如: \n" "^/widgets/foo common/foo-widget\n" " 这将会取出 http://example.com/svn/repos-1/" "widgets/fooC:\\Working\\common\\foo-widget。" #. (para) msgid "" "You can easily refer to other repositories with the same " "SVNParentPath (a common directory holding several " "repositories). For example: \n" "^/../repos-2/hammers/claw common/claw-hammer\n" " This will extract http://example.com/svn/" "repos-2/hammers/claw into C:\\Working\\common\\claw-" "hammer." msgstr "" "你可以很容易引用同一个 SVNParentPath (一个普通的目录包含多" "个版本库)下的其他版本库。例如: \n" "^/../repos-2/hammers/claw common/claw-hammer\n" " 这将会取出 http://example.com/svn/repos-2/" "hammers/clawC:\\Working\\common\\claw-hammer." #. (term) msgid "Relative to scheme" msgstr "相对于方案" #. (para) msgid "" "URLs beginning with the string // copy only the scheme " "part of the URL. This is useful when the same hostname must the accessed with " "different schemes depending upon network location; e.g. clients in the " "intranet use http:// while external " "clients use svn+ssh://. For example: " "\n" "//example.com/svn/repos-1/widgets/foo common/foo-widget\n" " This will extract http://example.com/svn/" "repos-1/widgets/foo or svn+ssh://" "example.com/svn/repos-1/widgets/foo depending on which method " "was used to checkout C:\\Working." msgstr "" "以字符串 // 开头的 URL 仅复制主版本库 URL 的方案部分。对于" "相同的主机,因为客户端所处网络的不同而需要使用不同的方案来访问时,这就很有用" "了;比如,内部网络的客户端使用 http:// " "而外部客户端使用 svn+ssh://。例如: " "\n" "//example.com/svn/repos-1/widgets/foo common/foo-widget\n" " 这将会取出 http://example.com/svn/repos-1/" "widgets/foo 或者 svn+ssh://example.com/" "svn/repos-1/widgets/foo,这取决于签出 C:\\Working 时使用哪种方式。" #. (term) msgid "Relative to the server's hostname" msgstr "相对于服务器主机名称" #. (para) msgid "" "URLs beginning with the string / copy the scheme and the " "hostname part of the URL, for example: \n" "/svn/repos-1/widgets/foo common/foo-widget\n" " This will extract http://example.com/svn/" "repos-1/widgets/foo into C:\\Working\\common\\foo-" "widget. But if you checkout your working copy from another server " "at svn+ssh://another.mirror.net/svn/repos-1/" "project1/trunk then the external reference will extract " "svn+ssh://another.mirror.net/svn/repos-1/widgets/" "foo." msgstr "" "以字符串 / 开头的 URL 复制主版本库 URL 的方案和主机名称部" "分。 for example: \n" "/svn/repos-1/widgets/foo common/foo-widget\n" " 这将会取出 http://example.com/svn/repos-1/" "widgets/fooC:\\Working\\common\\foo-widget。但如果你从另一个位于 svn+ssh://another." "mirror.net/svn/repos-1/project1/trunk 的服务器签出工作副本,那么" "外部引用将会取出 svn+ssh://another.mirror.net/svn/" "repos-1/widgets/foo。" #. (para) msgid "" "You can also specify a peg revision after the URL if required, e.g. " "http://sounds.red-bean.com/repos@19." msgstr "" "如果需要,你也可以在 URL 后面指定一个固定的版本号,比如 http://sounds.red-bean.com/repos@19。" #. (para) msgid "" "If you need more information how TortoiseSVN handles Properties read ." msgstr "" "如果你需要TortoiseSVN如何处理属性的更多信息,请阅读。" #. (para) msgid "" "To find out about different methods of accessing common sub-projects read " "." msgstr "" "如果你需要知道存取公共子个我我你工程的不同方法,请阅读." #. (title) msgid "External Files" msgstr "外部文件" #. (para) msgid "" "As of Subversion 1.6 you can add single file externals to your working copy " "using the same syntax as for folders. However, there are some restrictions." msgstr "" "从 Subversion 1.6 版起,你可以将单独的文件作为外部引用添加到你的工作副本中,它" "使用和外部文件夹相同的语法格式。然而,这里有一些限制。" #. (para) msgid "" "The path to the file external must place the file in an existing versioned " "folder. In general it makes most sense to place the file directly in the " "folder that has svn:externals set, but it can be in a " "versioned sub-folder if necessary. By contrast, directory externals will " "automatically create any intermediate unversioned folders as required." msgstr "" "外部文件的路径必须将文件放置在一个存在的版本控制的文件夹下。通常情况下,将文件" "放在设置 svn:externals 属性的文件夹下是一个非常明智的举措," "不过,如果需要,它可以放在一个版本控制的子文件夹下。相比之下,外部目录将会根据" "需要自动创建内部的未版本控制的文件夹。" #. (para) msgid "" "The URL for a file external must be in the same repository as the URL that " "the file external will be inserted into; inter-repository file externals are " "not supported." msgstr "" "外部文件的 URL 必须和插入外部文件的 URL 位于同一个版本库;不同版本库之间的外部" "文件不被支持。" #. (para) msgid "" "A file external behaves just like any other versioned file in many respects, " "but they cannot be moved or deleted using the normal commands; the " "svn:externals property must be modified instead." msgstr "" "外部文件行为在许多方面与其它版本控制的文件类似,但是它们不能使用普通的命令进行" "移动或删除;必须通过修改 svn:externals 来替代上述操作。" #. (title) msgid "File externals support incomplete in Subversion 1.6" msgstr "在 Subversion 1.6 中外部文件支持不完整" #. (para) msgid "" "In subversion 1.6 it is not possible to remove a file external from your " "working copy once you have added it, even if you delete the svn:" "externals property altogether. You have to checkout a fresh working " "copy to remove the file." msgstr "" "在 subversion 1.6 中,一但你添加了外部文件,subversion 不会从你的工作副本中删" "除外部文件,即使你完全删除了 svn:externals 属性。你必须检出" "一个全新的工作副本来删除文件。" #. (title) msgid "Branching / Tagging" msgstr "分支/标记" #. (primary) #. (primary) msgid "copy" msgstr "复制" #. (primary) #, fuzzy msgid "mark release" msgstr "深红" #. (para) msgid "" "One of the features of version control systems is the ability to isolate " "changes onto a separate line of development. This line is known as a " "branch. Branches are often used to try out new " "features without disturbing the main line of development with compiler errors " "and bugs. As soon as the new feature is stable enough then the development " "branch is merged back into the main branch (trunk)." msgstr "" "版本控制系统的一个特性是能够把各种修改分离出来放在一个单独的开发线上。这条线被" "称为分支。分支经常被用来试验新的特性,而不会干扰正在修" "改编译器错误和 bug 的主开发线。当新的特性足够稳定之后,开发分支就可以" "合并回主分支里(主干)." #. (para) msgid "" "Another feature of version control systems is the ability to mark particular " "revisions (e.g. a release version), so you can at any time recreate a certain " "build or environment. This process is known as tagging." msgstr "" "版本控制系统的另一个特性是能够标记特殊的版本(例如一个发布版本),所以你可以在任" "何时候重新建立一个特定的构建或环境。这个过程被称作标记。" #. (para) msgid "" "Subversion does not have special commands for branching or tagging, but uses " "so-called cheap copies instead. Cheap copies are similar to " "hard links in Unix, which means that instead of making a complete copy in the " "repository, an internal link is created, pointing to a specific tree/" "revision. As a result branches and tags are very quick to create, and take up " "almost no extra space in the repository." msgstr "" "Subversion 没有用于建立分支和标记的特殊命令,但是使用所谓的便宜复制来代替。便宜复制类似于 Unix 里的硬连接,它意思是代替一个版本库里的完整" "的复制,创建一个内部的链接,指向一个具体的版本树。结果分支和标记迅速被创建,并" "且几乎没有在版本库里占据任何额外的空间。" #. (title) msgid "Creating a Branch or Tag" msgstr "创建一个分支或标记" #. (title) msgid "The Branch/Tag Dialog" msgstr "分支/标记对话框" #. (para) msgid "" "If you have imported your project with the recommended directory structure, " "creating a branch or tag version is very simple: Select the " "folder in your working copy which you want to copy to a branch or tag, then " "select the command TortoiseSVNBranch/Tag...." msgstr "" "如果你用推荐的目录结构导入了一个工程,那么创建分支或标记就非常简单: " "在你当前的工作副本中选择你想要复制的分支或标记的目录,然后选择" "命令TortoiseSVN分支/标记...。" #. (para) msgid "" "The default destination URL for the new branch will be the source URL on " "which your working copy is based. You will need to edit that URL to the new " "path for your branch/tag. So instead of \n" " http://svn.collab.net/repos/ProjectName/trunk\n" " you might now use something like \n" " http://svn.collab.net/repos/ProjectName/tags/Release_1.10\n" " If you can't remember the naming convention you used last time, " "click the button on the right to open the repository browser so you can view " "the existing repository structure." msgstr "" "默认的新分支的目标 URL 将会是你工作副本对应的源 URL。你需要修改这个 URL 为你的" "分支/标记的新路径。那么替代\n" " http://svn.collab.net/repos/ProjectName/trunk\n" "你也会使用类似这样的路径\n" " http://svn.collab.net/repos/ProjectName/tags/Release_1.10\n" "如果你不记得你上一次使用的命名规则,单击右边的按钮来打开版本库浏览" "器,这样你就可以查看现有的版本库结构。" #. (term) #. (listitem) msgid "HEAD revision in the repository" msgstr "版本库中的最新版本" #. (para) msgid "" "The new branch is copied directly in the repository from the HEAD revision. " "No data needs to be transferred from your working copy, and the branch is " "created very quickly." msgstr "" "新的分支从最新版本复制到版本库中。没有数据需要从你的工作副本传递到版本库,而且" "分支非常迅速的被创建。" #. (term) msgid "Specific revision in the repository" msgstr "版本库中指定的版本" #. (para) msgid "" "The new branch is copied directly in the repository but you can choose an " "older revision. This is useful if you forgot to make a tag when you released " "your project last week. If you can't remember the revision number, click the " "button on the right to show the revision log, and select the revision number " "from there. Again no data is transferred from your working copy, and the " "branch is created very quickly." msgstr "" "新的分支从你选选择的旧版本复制到版本库中。当你忘记为上一周发布的项目创建标记" "时,这就很有用了。如果你不记得版本号,点击右边的按钮来显示版本日志,然后从中选" "择版本号。也没有数据需要从你的工作副本传递到版本库,而且分支非常迅速的被创建。" #. (para) msgid "" "The new branch is an identical copy of your local working copy. If you have " "updated some files to an older revision in your WC, or if you have made local " "changes, that is exactly what goes into the copy. Naturally this sort of " "complex tag may involve transferring data from your WC back to the repository " "if it does not exist there already." msgstr "" "新的分支是与你本地工作副本一模一样的副本。如果你将工作副本中某些文件更新到某个" "早先的版本,或者你进行了本地修改,这些正是要进入副本的。当然,这些繁多的标记会" "作为传输数据从你的工作副本送回版本库,如果它们不存在于版本库中。" #. (para) msgid "" "Now you have to select the source of the copy. Here you have three options: " "" msgstr "现在你需要选择从哪里复制。这里你有三个选择: " #. (para) msgid "" "If you want your working copy to be switched to the newly created branch " "automatically, use the Switch working copy to new branch/tag checkbox. But if you do that, first make sure that your working " "copy does not contain modifications. If it does, those changes will be merged " "into the branch WC when you switch." msgstr "" "如果想要将工作副本自动切换到新创建分支,选中切换工作副本至新分支/标" "记复选框。但是如果你要这样做,首先确认你的工作副本中不包含修改。如" "果有,这些修改将会在你切换时合并到分支的工作副本中。" #. (para) msgid "" "Press OK to commit the new copy to the repository. " "Don't forget to supply a log message. Note that the copy is created " "inside the repository." msgstr "" "按下确认提交新副本到版本库中。别忘了提供一条日志信息。" "需要注意的是这个副本是在版本库内部创建的。" #. (para) msgid "" "Note that unless you opted to switch your working copy to the newly created " "branch, creating a Branch or Tag does not affect your " "working copy. Even if you create the branch from your WC, those changes are " "committed to the new branch, not to the trunk, so your WC may still be marked " "as modified with respect to the trunk." msgstr "" "需要注意除非你决定切换工作副本到新创建分支,建立一个分支或标记不会影响你的工作副本。即使你从工作副本创建分支,这些修改也会提交到新分支" "里,而不是到主干里,所以你的工作副本可能仍然标记为已修改状态来避免影响主干。" #. (title) msgid "To Checkout or to Switch..." msgstr "检出或者切换" #. (primary) msgid "switch" msgstr "切换" #. (para) msgid "" "...that is (not really) the question. While a checkout downloads everything " "from the desired branch in the repository to your working directory, " "TortoiseSVNSwitch... only transfers the changed data to your working " "copy. Good for the network load, good for your patience. :-)" msgstr "" "...这是个小问题。当从版本库中预期的分支检出所有数据到你的工作副本目录时," "TortoiseSVN切换...