Undo 命令
从工作区移除挂起的更改。
必需的权限
若要使用 undo 命令,您必须是指定工作区的所有者或者将全局“管理工作区”权限设置为“允许
tf undo [/workspace:workspacename[;workspaceowner]]
[/server:servername] [/recursive] itemspec [/noprompt]
参数
参数
|
说明
|
workspacename
|
用户提供的 /workspace 选项的值。
|
workspaceowner
|
指定创建工作区的用户的名称。
|
servername
|
用户提供的 /server 选项的值。示例:teamfoundation2。
|
itemspec
|
标识要从中移除挂起的更改的文件或文件夹。
|
选项
|
说明
|
/workspace
|
指定要在其中撤销挂起更改的工作区的名称。如果未指定此选项,而您正在从已添加到工作区的目录运行该命令,则使用当前工作区。
|
/server
|
标识 Team Foundation Server。如果从未映射到工作区的目录调用命令,则此选项是必需的。
|
/recursive
|
根据 itemspec 以递归方式撤销更改。
|
/noprompt
|
取消显示需要您输入的任何提示。
|
备注
undo 命令检查具有正在撤销的挂起编辑的文件是否已在磁盘上进行修改。如果检测到修改,不带 /noprompt 的 undo 命令将显示一个提示,询问是否继续撤销更改。可以响应“Yes”、“No”或“All”。
undo 命令将所有签出文件返回到未修改的只读状态。它将丢弃对文件和文件夹的所有挂起的更改,并将项还原到 Team Foundation 版本控制 服务器版本。
undo 命令移除签入及签出锁定,以便用户在自己的工作区签出文件并对其做出挂起的更改。
如果使用 undo 命令撤销其他用户计算机上挂起的更改,则必须在该工作区中执行 get 操作以更新本地磁盘。不仅必须运行 get,还必须对已撤销的文件运行 get /all,以便为被编辑文件下载正确的内容。
示例
下面的示例移除当前工作区中对 314.cs 所做的所有挂起的更改。
c:\projects>tf undo 314.cs
下面的示例移除 c:\projects 文件夹及其所有子文件夹中所有挂起的更改。
c:\projects>tf undo /recursive c:\projects
下面的示例移除 Ivan 的 WS_Juan 工作区中指定文件的挂起的更改。
tf undo /workspace:WorkSpaceSample;所在的域\用户名:用户名序号 $/路径/文件名
WorkSpaceSample;所在的域\用户名
Undelete 命令
若要使用 undelete 命令,您必须将“签出”权限设置为“允许”。如果在 /lock 选项中包含一个非 none 值,则您必须将“锁定”权限设置为“允许”。此外,您必须是工作区的所有者或者将全局“管理工作区”权限设置为“允许”。 tf undelete [/noget] [/lock:(none|checkin|checkout)] [/newname:name]
[/recursive] itemspec[;deletionID]
参数
参数
|
说明
|
name
|
用户提供的 /newname 选项的值。可以指定一个本地或服务器路径。
|
itemspec
|
标识要撤消删除的文件或文件夹
|
deletionID
|
指定一个唯一的标识符,该标识符区分多个具有相同名称的已删除项。
|
选项
|
说明
|
/noget
|
将已删除的项还原至工作区,然后,挂起签入操作,还原服务器上的项,但并不立即将该项的物理副本检索到磁盘。
|
/lock
|
防止其他用户签入或签出指定文件。锁定选项:
· None
默认值。不应用锁定。
· Checkin
其他用户可以签出指定的项,但在您执行签入前,他们无法签入对锁定文件的修订。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
· Checkout
在您执行签入从而释放锁之前,防止其他用户签入或签出任何一个指定的项。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
|
/newname
|
在还原项时对其重命名。
|
/recursive
|
还原指定目录的所有文件和子文件夹。
|
备注
tf 命令行功能的 Undelete 命令为还原挂起的签入操作安排指定的文件或文件夹。它还将指定的项从服务器检索到本地磁盘,除非您显式包含 /noget 选项。
当具有相同名称的文件或文件夹从同一个服务器文件夹中被删除时,您必须包含 deletionID 参数的值,以指示您要还原哪个(哪些)已删除的项。可以使用 dir 命令来获取 deletionID。
若要将一个已删除项还原到一个服务器文件夹(在该文件夹中,某个具有相同名称的项已存在或是挂起的新项),可以使用 /newname 选项为撤消删除的项指定一个新名称。使用 /newname 选项一次只能撤消删除一个项。
如果要在还原文件之后对其进行更改,可以照常使用 checkout 命令签出文件进行编辑。
当 itemspec 指定了一个文件夹时,默认情况下,Team Foundation 将还原该文件夹中的所有文件和子文件夹以及这些子文件夹所包含的文件。如果不想还原文件夹中的所有项,则必须首先撤消删除该文件夹及其项,然后删除不想保留的项。
示例
下面的示例将 314.cs 从其被删除之处还原到服务器文件夹中,并在当前工作区中检索最新版本的只读副本。
C:\projects>tf undelete c:\math\314.cs
下面的示例显示服务器上所有被删除过多次的项的删除 ID。
c:\projects>tf dir $/ /deleted
· 示例输出:
$/projects/math/314.cs;X10
$/projects/math/314.cs;X11
下面的示例将 314.cs 的 X11 版本从其被删除之处还原至服务器文件夹,并在当前工作区中检索最新版本的只读副本。
Rename 命令(Team Foundation 版本控制)
rename 命令更改文件或文件夹的名称或路径。可以使用 rename 命令或者别名 move 或 ren 将文件或文件夹移至新位置。
若要使用 rename 命令,您必须将“签出”权限设置为“允许”。
tf rename [/lock:(none|checkout|checkin)] olditem newitem
参数
参数
|
说明
|
旧项
|
要重命名的文件或文件夹的原始名称和路径。可以指定本地工作区路径(如 C:\myfiles\314.cs)或 Team Foundation 版本控制 服务器路径(如 $/myfiles/314.cs)。
|
新项
|
文件或文件夹的新名称。可以使用此参数来指定不同的本地路径位置或 Team Foundation 版本控制 服务器路径位置。
|
选项
|
说明
|
/lock
|
包含此选项可防止其他用户签入或签出指定的项。如果未指定此选项,则不会改变项的现有锁定状态。
锁定选项:
· None 不应用锁定。
· Checkin 其他用户可以签出指定的项,但在您执行签入从而释放锁之前,他们无法签入对锁定文件的修订。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
· Checkout 在您执行签入从而释放锁之前,防止其他用户签入或签出任何一个指定的项。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
|
备注
可以使用 tf 命令行实用工具的 rename 命令来移动或重命名工作区中受版本控制的项。可以使用 rename 命令通过指定通配符来移动多个文件。重命名多个受版本控制的文件或文件夹这一功能只能通过命令行执行。
可以使用 Rename 命令执行以下操作:
· 将 olditem 重命名为 newitem,例如 tf rename 314.cs 315.cs。
· 通过提供一个与 olditem 具有不同路径的 newitem,将 olditem 移至 Team Foundation 版本控制 服务器中的新位置,例如 tf rename 314.cs ..\newdir\314.cs。
如果您提供的 newitem 指定了不存在的文件夹,rename 命令会创建目标文件夹。如果 newitem 是文件夹,则 olditem 会成为 newitem 的子级。
在以下情况,您无法重命名项:
· 在同一工作区中签入之前,已将该项删除。
· 新的名称已存在于 Team Foundation 版本控制 服务器中且不是文件夹。
· 挂起签入某项时,已添加或重命名该项,或者已经为其创建了分支。
· 项在工作区中被映射,但在本地磁盘上不可用。
· 项已掩蔽。
如果与项名称相同的另一个文件已被添加了挂起的签入,则您可以重命名该项;但您无法重命名已分支但尚未签入的项。当您重命名具有挂起编辑的文件时,将保留这些编辑。
显式映射的项如果不首先更改映射则无法重命名。例如,如果存在 $/ProjectX/MyApp 到 c:\MyApp 的工作文件夹映射,则不能重命名 MyApp。可以重命名 MyApp 下的项,但不能重命名 MyApp 本身。
示例
下面的示例将 314.c 的名称更改为 1254.c。
c:\projects>tf rename 314.c 1254.c
下面的示例将 314.c 重命名为 1254.c 并将其移至 newdir 文件夹。
c:\projects>tf rename 314.c ..\newdir\1254.c
下面的示例将 Form1.vb 的名称更改为 MainPage.vb 并向其应用锁定。
c:\projects>tf rename Form1.vb MainPage.vb /lock:checkin
Destroy 命令
使用 tf destroy 命令可以在 Team Foundation 版本控制中销毁或永久删除受版本控制的文件。
销毁操作无法撤消。不得销毁仍然需要的文件。有时,您必须清理版本控制系统。例如,如果某些文件感染了计算机病毒,则必须从版本控制中永久移除这些文件。
运行不带 /keephistory 选项的 tf destroy 之前,建议您先删除要销毁的文件。
删除文件后,可以同步 Team Foundation 仓库。否则该仓库将不与被销毁的项同步。
必需的权限
若要使用 destroy 命令,您必须属于“Team Foundation Administrators”安全组。
tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>…<itemspecN>]
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt]
参数
参数
|
说明
|
itemspec1 [itemspec2…itemspecN]
|
指定要销毁的文件或文件夹的服务器路径。使用多个 itemspec 值可以删除多个项。例如,tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3。
不支持本地路径。
|
versionspec
|
为 /keephistory 或 /stopat 选项提供一个版本(如 C58)。允许的值为日期、提示或特定变更集。
|
选项
|
说明
|
/keephistory
|
可选。指定在销毁文件内容时保留文件的历史记录。此选项不能与 /preview 选项一起指定。
|
/stopat
|
可选。仅当同时指定了 /keephistory 时才可以使用。
指定文件的文件版本,文件的历史记录将从该版本开始保留。
/stopat 的默认版本为某个项的最新签入版本的提示 (T)。
无法使用标签或工作区 versionspec 值为 /stopat 选项指定一个项。
|
/preview
|
在“命令提示符”窗口中显示要销毁的文件。当在预览模式下运行 tf destroy 时,文件实际上并未销毁。
说明:
|
在“命令提示符”窗口中,每个要销毁的文件旁边都会显示“已销毁”字样。但是,在使用 /preview 选项时,文件实际上并未销毁。
|
|
/startcleanup
|
强制文件内容清理过程在内容删除结束后立即开始。如果用户未指定 /startcleanup,则只有当数据库维护操作清理完 Team Foundation Server 不再引用的所有文件时,才会执行销毁内容清理过程。默认情况下,清理过程计划每天运行一次。
|
/noprompt
/i
|
指定文件销毁为非交互式操作。/i 是 /noprompt 的别名。
|
备注
在使用 tf destroy 销毁版本控制文件时,Team Foundation Server 的应用层接收销毁请求并检查您是否为“Team Foundation Administrators”安全组的成员。如果您不是该组的成员,系统会显示一个错误消息对话框,告知您没有足够的权限来执行该操作。
在系统验证您的权限后,就会运行 destroy 命令。此命令会删除所有文件引用、搁置集和挂起的更改。在下一次清理 Team Foundation Server 不再引用的内容时,将执行实际销毁文件的操作(这是一个永久删除操作)。您还可以指定 /startcleanup 选项,以便在 tf destroy 运行后立即清理文件。
如果在不指定 /i 和 /preview 的情况下运行 tf destroy,则系统对于每个 filespec 值都会显示一个控制台 Yes 或 No 提示。另外,还可以指定 Yes to all。如果未指定 /keephistory,则会显示交互式文本提示,警告您注意挂起的更改(如果这些更改存在)。该交互式文本指向 /preview,您可以借此获取有关这些更改的更多信息。如果指定 /keephistory,则还会显示 Yes、No 或 All 文本提示。如果选择 Yes 或 All,则销毁过程开始执行,并且销毁项的服务器路径会显示在“命令提示符”窗口中。
Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: …
如果将 versionspec 值指定为提示,则服务器路径(包括删除 ID)会显示在“命令提示符”窗口中。例如,X123 可能显示在“命令提示符”窗口中。
如果使用 /preview 选项,则文件未销毁,但命令行文本会显示要销毁的文件。例如,如果在命令行键入 tf destroy /preview $/Test1/MyProject/MyProject/Program.cs,则命令窗口会显示以下文本:
已销毁: $/Test1/MyProject/MyProject/Program.cs
但是,由于使用了 /preview 选项,因此该文件实际上并未销毁。
其他版本控制操作上的 /keephistory 的效果
如果指定 /keephistory 选项以保留销毁文件的历史记录,则会将文件视为由以下 Team Foundation 版本控制操作销毁:
· 更改内容 如果试图更改已销毁文件的内容(如编辑或分支),则系统会发出一个错误消息,指出内容已销毁。
· 分支、合并或取消搁置 如果试图对已销毁的项进行分支、合并或取消搁置,则系统会发出一个错误消息,指出这些项的内容已销毁。
销毁先前删除的项
如果某个项已删除,则会将一个删除 ID 附加到该项并导致文件名更改。
示例
说明
下面的示例演示如何永久删除文件 a.cs。
代码
C:\pi\ws1>tf destroy $/proj/pi/a.cs
说明
下面的示例演示如何删除文件夹 aFolder。请在命令行键入:
代码
C:\tf delete $/MyTeamProject/aFolder
说明
若要销毁已删除的项 aFolder,必须在命令行键入:
代码
tf destroy $/MyTeamProject/sFolder;x123
其中 x123 为删除 ID。