team foundation server 强制签入别人签出的文件

Scenario: Another user has locked a file for checkout, but is no longer available to check the file back in and now you need that file.
 
Unlocking the file
 
First you will need to get a list of the workspaces for that user. This can be done with administrative rights from the command line as follows:
 
tf workspaces /owner:DOMAIN/TheirUserAccount /computer:*
 
The command will retrieve a list of all workspaces on all computers for that user.
 
You can now use the output information to undo the checkouts on the files you want:
 
tf undo /workspace:TheirWorkspace;DOMAIN/TheirUserAccount $/path/to/file
 
In the event the developer is no longer with the company or on the project, you can also delete the workspace which will also undo any pending changes using the following command:
 
tf workspace /delete TheirWorkspace;DOMAIN/TheirUserAccount /s:http://TFSSERVER:8080

 

 

tfs的撤销签出没有图形化界面,需要用命令行实现

1.查找那个人所用到的workspace,操作如下 tf workspaces /owner:zhz /Server:http://192.168.1.200:8080 命令结果:Server: http://192.168.1.200:8080/ 

workspace Owner  Computer      --------- ------ -------        RZ    zhz        RZ     

2.撤销他的签出(强制),操作如下:tf undo /workspace:RZ(工作区名字);zhz(用户名)$/xxx/xxxxx/aaa.csproj /Server:http://192.168.1.200:8080       具体操作可以查看命令帮助:tf /?

注:最好要有"管理工作区"权限(团队资源管理器,服务器右键->tfs设置->安全性),或者用tf perm命令设置tf:undother权限

 

 

Undo 命令

从工作区移除挂起的更改。

必需的权限

若要使用 undo 命令,您必须是指定工作区的所有者或者将全局管理工作区权限设置为允许

tf undo [/workspace:workspacename[;workspaceowner]]

[/server:servername] [/recursive] itemspec [/noprompt]

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 参数

参数

说明

workspacename

用户提供的 /workspace 选项的值。

workspaceowner

指定创建工作区的用户的名称。

servername

用户提供的 /server 选项的值。示例:teamfoundation2

itemspec

标识要从中移除挂起的更改的文件或文件夹。

选项

说明

/workspace

指定要在其中撤销挂起更改的工作区的名称。如果未指定此选项,而您正在从已添加到工作区的目录运行该命令,则使用当前工作区。

/server

标识 Team Foundation Server。如果从未映射到工作区的目录调用命令,则此选项是必需的。

/recursive

根据 itemspec 以递归方式撤销更改。

/noprompt

取消显示需要您输入的任何提示。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 备注

undo 命令检查具有正在撤销的挂起编辑的文件是否已在磁盘上进行修改。如果检测到修改,不带 /noprompt undo 命令将显示一个提示,询问是否继续撤销更改。可以响应“Yes”“No”“All”

undo 命令将所有签出文件返回到未修改的只读状态。它将丢弃对文件和文件夹的所有挂起的更改,并将项还原到 Team Foundation 版本控制 服务器版本。

undo 命令移除签入及签出锁定,以便用户在自己的工作区签出文件并对其做出挂起的更改。

如果使用 undo 命令撤销其他用户计算机上挂起的更改,则必须在该工作区中执行 get 操作以更新本地磁盘。不仅必须运行 get,还必须对已撤销的文件运行 get /all,以便为被编辑文件下载正确的内容。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 示例

下面的示例移除当前工作区中对 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]

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 参数

参数

说明

name

用户提供的 /newname 选项的值。可以指定一个本地或服务器路径。

itemspec

标识要撤消删除的文件或文件夹

deletionID

指定一个唯一的标识符,该标识符区分多个具有相同名称的已删除项。

选项

说明

/noget

将已删除的项还原至工作区,然后,挂起签入操作,还原服务器上的项,但并不立即将该项的物理副本检索到磁盘。

/lock

防止其他用户签入或签出指定文件。锁定选项:

·         None

默认值。不应用锁定。

·         Checkin

其他用户可以签出指定的项,但在您执行签入前,他们无法签入对锁定文件的修订。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。

·         Checkout

在您执行签入从而释放锁之前,防止其他用户签入或签出任何一个指定的项。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。

/newname

在还原项时对其重命名。

/recursive

还原指定目录的所有文件和子文件夹。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 备注

tf 命令行功能的 Undelete 命令为还原挂起的签入操作安排指定的文件或文件夹。它还将指定的项从服务器检索到本地磁盘,除非您显式包含 /noget 选项。

当具有相同名称的文件或文件夹从同一个服务器文件夹中被删除时,您必须包含 deletionID 参数的值,以指示您要还原哪个(哪些)已删除的项。可以使用 dir 命令来获取 deletionID

若要将一个已删除项还原到一个服务器文件夹(在该文件夹中,某个具有相同名称的项已存在或是挂起的新项),可以使用 /newname 选项为撤消删除的项指定一个新名称。使用 /newname 选项一次只能撤消删除一个项。

如果要在还原文件之后对其进行更改,可以照常使用 checkout 命令签出文件进行编辑。

itemspec 指定了一个文件夹时,默认情况下,Team Foundation 将还原该文件夹中的所有文件和子文件夹以及这些子文件夹所包含的文件。如果不想还原文件夹中的所有项,则必须首先撤消删除该文件夹及其项,然后删除不想保留的项。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 示例

下面的示例将 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

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 参数

参数

说明

旧项

要重命名的文件或文件夹的原始名称和路径。可以指定本地工作区路径(如 C:"myfiles"314.cs)或 Team Foundation 版本控制 服务器路径(如 $/myfiles/314.cs)。

新项

文件或文件夹的新名称。可以使用此参数来指定不同的本地路径位置或 Team Foundation 版本控制 服务器路径位置。

选项

说明

/lock

包含此选项可防止其他用户签入或签出指定的项。如果未指定此选项,则不会改变项的现有锁定状态。

锁定选项:

·         None   不应用锁定。

·         Checkin   其他用户可以签出指定的项,但在您执行签入从而释放锁之前,他们无法签入对锁定文件的修订。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。

·         Checkout   在您执行签入从而释放锁之前,防止其他用户签入或签出任何一个指定的项。如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 备注

可以使用 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 本身。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 示例

下面的示例将 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]

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 参数

参数

说明

itemspec1 [itemspec2…itemspecN]

指定要销毁的文件或文件夹的服务器路径。使用多个 itemspec 值可以删除多个项。例如,tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3

不支持本地路径。

versionspec

/keephistory /stopat 选项提供一个版本(如 C58)。允许的值为日期、提示或特定变更集。

选项

说明

/keephistory

可选。指定在销毁文件内容时保留文件的历史记录。此选项不能与 /preview 选项一起指定。

/stopat

可选。仅当同时指定了 /keephistory 时才可以使用。

指定文件的文件版本,文件的历史记录将从该版本开始保留。

/stopat 的默认版本为某个项的最新签入版本的提示 (T)

无法使用标签或工作区 versionspec 值为 /stopat 选项指定一个项。

/preview

命令提示符窗口中显示要销毁的文件。当在预览模式下运行 tf destroy 时,文件实际上并未销毁。

http://msdn2.microsoft.com/zh-cn/library/Bb386005.alert_note(zh-cn,VS.90).gif说明:

命令提示符窗口中,每个要销毁的文件旁边都会显示已销毁字样。但是,在使用 /preview 选项时,文件实际上并未销毁。

/startcleanup

强制文件内容清理过程在内容删除结束后立即开始。如果用户未指定 /startcleanup,则只有当数据库维护操作清理完 Team Foundation Server 不再引用的所有文件时,才会执行销毁内容清理过程。默认情况下,清理过程计划每天运行一次。

/noprompt

/i

指定文件销毁为非交互式操作。/i /noprompt 的别名。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 备注

在使用 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,则还会显示 YesNo 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 附加到该项并导致文件名更改。

http://i.msdn.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif 示例

说明

下面的示例演示如何永久删除文件 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章