强制签入别人签出的文件tfundo.docx
《强制签入别人签出的文件tfundo.docx》由会员分享,可在线阅读,更多相关《强制签入别人签出的文件tfundo.docx(11页珍藏版)》请在冰豆网上搜索。
![强制签入别人签出的文件tfundo.docx](https://file1.bdocx.com/fileroot1/2023-1/28/3e45699e-b3e1-4578-8d1a-9a2ce44b71b9/3e45699e-b3e1-4578-8d1a-9a2ce44b71b91.gif)
强制签入别人签出的文件tfundo
Scenario:
Anotheruserhaslockedafileforcheckout,butisnolongeravailabletocheckthefilebackinandnowyouneedthatfile.
Unlockingthefile
Firstyouwillneedtogetalistoftheworkspacesforthatuser.Thiscanbedonewithadministrativerightsfromthecommandlineasfollows:
tfworkspaces/owner:
DOMAIN\TheirUserAccount/computer:
*
Thecommandwillretrievealistofallworkspacesonallcomputersforthatuser.
Youcannowusetheoutputinformationtoundothecheckoutsonthefilesyouwant:
tfundo/workspace:
TheirWorkspace;DOMAIN\TheirUserAccount$/path/to/file
Intheeventthedeveloperisnolongerwiththecompanyorontheproject,youcanalsodeletetheworkspacewhichwillalsoundoanypendingchangesusingthefollowingcommand:
tf workspace/deleteTheirWorkspace;DOMAIN\TheirUserAccount/s:
http:
//TFSSERVER:
8080
tfs的撤销签出没有图形化界面,需要用命令行实现
1.查找那个人所用到的workspace,操作如下tfworkspaces/owner:
zhz/Server:
http:
//192.168.1.200:
8080命令结果:
Server:
http:
//192.168.1.200:
8080/
workspaceOwner Computer ---------------------- RZ zhz RZ
2.撤销他的签出(强制),操作如下:
tfundo/workspace:
RZ(工作区名字);zhz(用户名)$/xxx/xxxxx/aaa.csproj/Server:
http:
//192.168.1.200:
8080 具体操作可以查看命令帮助:
tf/?
注:
最好要有"管理工作区"权限(团队资源管理器,服务器右键->tfs设置->安全性),或者用tfperm命令设置tf:
undother权限
Undo命令
从工作区移除挂起的更改。
必需的权限
若要使用undo命令,您必须是指定工作区的所有者或者将全局“管理工作区”权限设置为“允许
tfundo[/workspace:
workspacename[;workspaceowner]]
[/server:
servername][/recursive]itemspec[/noprompt]
参数
参数
说明
workspacename
用户提供的/workspace选项的值。
workspaceowner
指定创建工作区的用户的名称。
servername
用户提供的/server选项的值。
示例:
teamfoundation2。
itemspec
标识要从中移除挂起的更改的文件或文件夹。
选项
说明
/workspace
指定要在其中撤销挂起更改的工作区的名称。
如果未指定此选项,而您正在从已添加到工作区的目录运行该命令,则使用当前工作区。
/server
标识TeamFoundationServer。
如果从未映射到工作区的目录调用命令,则此选项是必需的。
/recursive
根据itemspec以递归方式撤销更改。
/noprompt
取消显示需要您输入的任何提示。
备注
undo命令检查具有正在撤销的挂起编辑的文件是否已在磁盘上进行修改。
如果检测到修改,不带/noprompt的undo命令将显示一个提示,询问是否继续撤销更改。
可以响应“Yes”、“No”或“All”。
undo命令将所有签出文件返回到未修改的只读状态。
它将丢弃对文件和文件夹的所有挂起的更改,并将项还原到TeamFoundation版本控制服务器版本。
undo命令移除签入及签出锁定,以便用户在自己的工作区签出文件并对其做出挂起的更改。
如果使用undo命令撤销其他用户计算机上挂起的更改,则必须在该工作区中执行get操作以更新本地磁盘。
不仅必须运行get,还必须对已撤销的文件运行get/all,以便为被编辑文件下载正确的内容。
示例
下面的示例移除当前工作区中对314.cs所做的所有挂起的更改。
c:
"projects>tfundo314.cs
下面的示例移除c:
"projects文件夹及其所有子文件夹中所有挂起的更改。
c:
"projects>tfundo/recursivec:
"projects
下面的示例移除Ivan的WS_Juan工作区中指定文件的挂起的更改。
tfundo/workspace:
WorkSpaceSample;所在的域"用户名:
用户名序号 $/路径/文件名
WorkSpaceSample;所在的域"用户名
Undelete命令
若要使用undelete命令,您必须将“签出”权限设置为“允许”。
如果在/lock选项中包含一个非none值,则您必须将“锁定”权限设置为“允许”。
此外,您必须是工作区的所有者或者将全局“管理工作区”权限设置为“允许”。
tfundelete[/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指定了一个文件夹时,默认情况下,TeamFoundation将还原该文件夹中的所有文件和子文件夹以及这些子文件夹所包含的文件。
如果不想还原文件夹中的所有项,则必须首先撤消删除该文件夹及其项,然后删除不想保留的项。
示例
下面的示例将314.cs从其被删除之处还原到服务器文件夹中,并在当前工作区中检索最新版本的只读副本。
C:
"projects>tfundeletec:
"math"314.cs
下面的示例显示服务器上所有被删除过多次的项的删除ID。
c:
"projects>tfdir$//deleted
∙ 示例输出:
$/projects/math/314.cs;X10
$/projects/math/314.cs;X11
下面的示例将314.cs的X11版本从其被删除之处还原至服务器文件夹,并在当前工作区中检索最新版本的只读副本。
Rename命令(TeamFoundation版本控制)
rename命令更改文件或文件夹的名称或路径。
可以使用rename命令或者别名move或ren将文件或文件夹移至新位置。
若要使用rename命令,您必须将“签出”权限设置为“允许”。
tfrename[/lock:
(none|checkout|checkin)]olditemnewitem
参数
参数
说明
旧项
要重命名的文件或文件夹的原始名称和路径。
可以指定本地工作区路径(如C:
"myfiles"314.cs)或TeamFoundation版本控制服务器路径(如$/myfiles/314.cs)。
新项
文件或文件夹的新名称。
可以使用此参数来指定不同的本地路径位置或TeamFoundation版本控制服务器路径位置。
选项
说明
/lock
包含此选项可防止其他用户签入或签出指定的项。
如果未指定此选项,则不会改变项的现有锁定状态。
锁定选项:
∙ None 不应用锁定。
∙ Checkin 其他用户可以签出指定的项,但在您执行签入从而释放锁之前,他们无法签入对锁定文件的修订。
如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
∙ Checkout 在您执行签入从而释放锁之前,防止其他用户签入或签出任何一个指定的项。
如果任何其他用户已锁定任何一个指定的项,则锁定操作将失败。
备注
可以使用tf命令行实用工具的rename命令来移动或重命名工作区中受版本控制的项。
可以使用rename命令通过指定通配符来移动多个文件。
重命名多个受版本控制的文件或文件夹这一功能只能通过命令行执行。
可以使用Rename命令执行以下操作:
∙ 将olditem重命名为newitem,例如tfrename314.cs315.cs。
∙ 通过提供一个与olditem具有不同路径的newitem,将olditem移至TeamFoundation版本控制服务器中的新位置,例如 tfrename314.cs.."newdir"314.cs。
如果您提供的newitem指定了不存在的文件夹,rename命令会创建目标文件夹。
如果newitem是文件夹,则olditem会成为newitem的子级。
在以下情况,您无法重命名项:
∙ 在同一工作区中签入之前,已将该项删除。
∙ 新的名称已存在于TeamFoundation版本控制服务器中且不是文件夹。
∙ 挂起签入某项时,已添加或重命名该项,或者已经为其创建了分支。
∙ 项在工作区中被映射,但在本地磁盘上不可用。
∙ 项已掩蔽。
如果与项名称相同的另一个文件已被添加了挂起的签入,则您可以重命名该项;但您无法重命名已分支但尚未签入的项。
当您重命名具有挂起编辑的文件时,将保留这些编辑。
显式映射的项如果不首先更改映射则无法重命名。
例如,如果存在$/ProjectX/MyApp到c:
"MyApp的工作文件夹映射,则不能重命名MyApp。
可以重命名MyApp下的项,但不能重命名MyApp本身。
示例
下面的示例将314.c的名称更改为1254.c。
c:
"projects>tfrename 314.c 1254.c
下面的示例将314.c重命名为1254.c并将其移至newdir文件夹。
c:
"projects>tfrename314.c.."newdir"1254.c
下面的示例将Form1.vb的名称更改为MainPage.vb并向其应用锁定。
c:
"projects>tfrenameForm1.vbMainPage.vb/lock:
checkin
Destroy命令
使用tfdestroy命令可以在TeamFoundation版本控制中销毁或永久删除受版本控制的文件。
销毁操作无法撤消。
不得销毁仍然需要的文件。
有时,您必须清理版本控制系统。
例如,如果某些文件感染了计算机病毒,则必须从版本控制中永久移除这些文件。
运行不带/keephistory选项的tfdestroy之前,建议您先删除要销毁的文件。
删除文件后,可以同步TeamFoundation仓库。
否则该仓库将不与被销毁的项同步。
必需的权限
若要使用destroy命令,您必须属于“TeamFoundationAdministrators”安全组。
tfdestroy[/keephistory][;][…]
[/stopat:
][/preview][/startcleanup][/noprompt]
参数
参数
说明
itemspec1[itemspec2…itemspecN]
指定要销毁的文件或文件夹的服务器路径。
使用多个itemspec值可以删除多个项。
例如,tfdestroy$/TeamProject1$/teamProject2$/TeamProject3。
不支持本地路径。
versionspec
为/keephistory或/stopat选项提供一个版本(如C58)。
允许的值为日期、提示或特定变更集。
选项
说明
/keephistory
可选。
指定在销毁文件内容时保留文件的历史记录。
此选项不能与/preview选项一起指定。
/stopat
可选。
仅当同时指定了/keephistory时才可以使用。
指定文件的文件版本,文件的历史记录将从该版本开始保留。
/stopat的默认版本为某个项的最新签入版本的提示(T)。
无法使用标签或工作区versionspec值为/stopat选项指定一个项。
/preview
在“命令提示符”窗口中显示要销毁的文件。
当在预览模式下运行tfdestroy时,文件实际上并未销毁。
说明:
在“命令提示符”窗口中,每个要销毁的文件旁边都会显示“已销毁”字样。
但是,在使用/preview选项时,文件实际上并未销毁。
/startcleanup
强制文件内容清理过程在内容删除结束后立即开始。
如果用户未指定/startcleanup,则只有当数据库维护操作清理完TeamFoundationServer不再引用的所有文件时,才会执行销毁内容清理过程。
默认情况下,清理过程计划每天运行一次。
/noprompt
/i
指定文件销毁为非交互式操作。
/i是/noprompt的别名。
备注
在使用tfdestroy销毁版本控制文件时,TeamFoundationServer的应用层接收销毁请求并检查您是否为“TeamFoundationAdministrators”安全组的成员。
如果您不是该组的成员,系统会显示一个错误消息对话框,告知您没有足够的权限来执行该操作。
在系统验证您的权限后,就会运行destroy命令。
此命令会删除所有文件引用、搁置集和挂起的更改。
在下一次清理TeamFoundationServer不再引用的内容时,将执行实际销毁文件的操作(这是一个永久删除操作)。
您还可以指定/startcleanup选项,以便在tfdestroy运行后立即清理文件。
如果在不指定/i和/preview的情况下运行tfdestroy,则系统对于每个filespec值都会显示一个控制台Yes或No提示。
另外,还可以指定Yestoall。
如果未指定/keephistory,则会显示交互式文本提示,警告您注意挂起的更改(如果这些更改存在)。
该交互式文本指向/preview,您可以借此获取有关这些更改的更多信息。
如果指定/keephistory,则还会显示Yes、No或All文本提示。
如果选择Yes或All,则销毁过程开始执行,并且销毁项的服务器路径会显示在“命令提示符”窗口中。
Destroyed:
Destroyed:
Destroyed:
…
如果将versionspec值指定为提示,则服务器路径(包括删除ID)会显示在“命令提示符”窗口中。
例如,X123可能显示在“命令提示符”窗口中。
如果使用/preview选项,则文件未销毁,但命令行文本会显示要销毁的文件。
例如,如果在命令行键入tfdestroy/preview$/Test1/MyProject/MyProject/Program.cs,则命令窗口会显示以下文本:
已销毁:
$/Test1/MyProject/MyProject/Program.cs
但是,由于使用了/preview选项,因此该文件实际上并未销毁。
其他版本控制操作上的/keephistory的效果
如果指定/keephistory选项以保留销毁文件的历史记录,则会将文件视为由以下TeamFoundation版本控制操作销毁:
∙ 更改内容 如果试图更改已销毁文件的内容(如编辑或分支),则系统会发出一个错误消息,指出内容已销毁。
∙ 分支、合并或取消搁置 如果试图对已销毁的项进行分支、合并或取消搁置,则系统会发出一个错误消息,指出这些项的内容已销毁。
销毁先前删除的项
如果某个项已删除,则会将一个删除ID附加到该项并导致文件名更改。
示例
说明
下面的示例演示如何永久删除文件a.cs。
代码
C:
"pi"ws1>tfdestroy$/proj/pi/a.cs
说明
下面的示例演示如何删除文件夹aFolder。
请在命令行键入:
代码
C:
"tfdelete$/MyTeamProject/aFolder
说明
若要销毁已删除的项aFolder,必须在命令行键入:
代码
tfdestroy$/MyTeamProject/sFolder;x123
其中x123为删除ID。