以编程方式将文件检入 TFS 的结果超出预期

2024-02-26


因此,我有一个 .NET 应用程序,它会生成一系列文件,将它们输出到本地目录,然后确定是否需要更新现有文件或将新文件添加到 TFS(Team Foundation Server)项目中。
我的本地计算机上有一个工作区,并且有 10 个不同的工作文件夹,它们是我在这台特定计算机上处​​理过的其他编码项目。当我去检查文件是否已存在于 TFS 项目中并且需要更新或者是否需要作为新文件添加到项目中时,我的问题发生了。
snipet:



static string TFSProject = @"$/SQLScripts/";
static WorkspaceInfo wsInfo;
static VersionControlServer versionControl;
static string argPath = "E:\\SQLScripts\\";

wsInfo = Workstation.Current.GetLocalWorkspaceInfo(argPath);
TeamFoundationServer tfs = new TeamFoundationServer(wsInfo.ServerUri.AbsoluteUri);
versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

Workspace workspace = versionControl.GetWorkspace(wsInfo);
workspace.GetLocalItemForServerItem(TFSProject);
  


此时,我检查文件是否存在,然后执行以下两件事之一。如果该文件存在,则我将该文件标记为“编辑”,然后将该文件写入本地目录,否则我将先编写该文件的脚本,然后将该文件添加到工作区。我不在乎物理文件是否与我生成的文件相同,因为我这样做是为了“跟踪更改”的 SAS70 要求

如果存在的话我会:
工作区.PendEdit(文件名,RecursionType.Full);
脚本输出文件(文件名);

或者如果它不存在
脚本输出文件名(文件名);
工作区.PendAdd(文件名,true);

好的,所有这些都是为了解决问题。当我检查项目的挂起更改时,我会得到工作区中本地计算机上所有项目的所有挂起更改。



// Show our pending changes. 
PendingChange[] pendingChanges = workspace.GetPendingChanges();
foreach (PendingChange pendingChange in pendingChanges)
{
    dosomething...
}
  

我认为通过将工作区设置为workspace.GetLocalItemForServerItem(TFSProject),它只会为我提供该特定工作文件夹的对象。

是否有任何方法可以强制工作区对象仅处理特定的工作文件夹?

这有什么意义吗?提前致谢...


使用 LINQ 您可以获得特定文件夹的挂起更改

PendingChange[] pendingChanges = workspace
    .GetPendingChanges()
    .Where(x => x.LocalOrServerFolder.Contains(argPath))
    .ToArray();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式将文件检入 TFS 的结果超出预期 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • Python 在标签正则表达式处分割

    我正在尝试拆分这些行
  • SQL 中的 LIMIT 语句有多通用?

    我正在推广 Django DB 复制应用程序 它使用以下语句 SELECT s FROM s LIMIT 1 获取 1 行并使用 Python DBAPI 来描述字段 它可以在 ORACLE 和 MySQL 中正常工作 但是 LIMIT 语
  • 创建共现矩阵

    我正在尝试解决共现矩阵的问题 我有一个交易和项目的数据文件 我想查看项目一起出现的交易数量的矩阵 我是 R 编程的新手 我很高兴发现 R 拥有的所有快捷方式 而不是创建特定的循环 我几年前曾经使用 C 现在只坚持使用 Excel 宏和 SP
  • H264解析-切片头检测

    我知道在 h264 中我们可以通过位模式检测 NAL 单元0x000001 是否有等效的方法来检测 NAL 单元中的切片标头 如何处理多切片 NAL 单元 目前我正在使用 h264 的解析代码并获取相应结构中的切片标头 切片头语法在第 36
  • 模式匹配 - Prolog 与 Haskell

    这不是一个家庭作业问题 而是一个考试学习指导问题 Prolog 与 Haskell 中的模式匹配有什么区别 我做了一些研究并阅读了它们背后的理论并没有真正让我对两者有一个坚实的理解 我在Prolog中读到 模式匹配是不同的 因为它具有统一变
  • 需要更好的算法来查找 2 组具有最小距离的点之间的映射

    Problem 我有两个重叠的 2D 形状 A 和 B 每个形状具有相同数量的像素 但形状不同 形状的某些部分是重叠的 而每个形状的某些部分是不重叠的 我的目标是将形状 A 中的所有不重叠像素移动到形状 B 中的不重叠像素 由于每个形状中的
  • 网站图像文件是否应该包含在 GIT 存储库中?

    我有一个网站文件 文件夹结构模板可以开始使用git 它包含一个空的 gitignore文件内的images文件夹 这引出了我的两部分问题 1 这个是空的吗 gitignore文件忽略所有位于的图像inside the images文件夹 或
  • Pandas 就地操作 DataFrame 与非就地操作 DataFrame (inplace=True vs False) [重复]

    这个问题在这里已经有答案了 我想知道当我们选择就地操作数据帧时 与没到位 我在 Stack Overflow 上做了一些搜索 发现了这个post https stackoverflow com questions 43893457 pyth
  • 将 Objective-C 对象作为 void * 指针传递给函数

    我有一个功能 myFunction MyProc callback void ref 该函数是从 Objective C 类中调用的 该函数传递一个指向回调 类中的函数 的指针和一个引用 该引用是必要的 因为回调是静态调用的 因此没有上下文
  • 哪个 C/C++ 头文件定义了 BYTE 数据类型?

    我正在使用此声明移植标头 struct tMaterialInfo char strName 255 the texture name char strFile 255 the texture BYTE color 3 the color
  • 观看模板文件并将其复制到 dist/ 文件夹

    我在我的项目中使用打字稿 我可以成功观看 编译 ts 文件并将它们输出到dist folder 这里是scripts我的一部分package json start npm run build npm run watch build npm
  • 如何提取这个多态递归函数?

    我正在使用 GHC 7 8 做一些相当有趣的事情 但遇到了一些问题 我有以下内容 mkResultF Eq k gt Query kvs KV k v gt k gt ResultF Reverse kvs Maybe v mkResult
  • 通过重复元素分割数组的最 Pythonic 方法

    我有一个要根据分隔符拆分的项目列表 我希望删除所有分隔符并在出现时拆分列表分隔符出现两次 例如 如果分隔符是 X 然后是以下列表 a b X X c d X X f X g 会变成 a b c d f g 请注意 最后一组没有拆分 我已经编
  • 插入数据库 php 后表情符号显示为问号

    我使用utf8mb4作为编码 character set connection和character set database已设置为utf8mb4 我的网页的字符集设置为utf8 我使用了 PDO 当我打开数据库连接时 我使用 utf8mb
  • 仅使用 javascript 生成并保存/下载文件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 冒号运算符在 MATLAB 中如何工作?

    如中所述山姆 罗伯茨的回答 https stackoverflow com a 26297279 7328782 and gnovice 的另一个答案 https stackoverflow com a 5779438 7328782 MA
  • 从函数返回范围

    我试图让 VBA 中的子函数调用另一个函数 该函数返回一个范围并设置为一个变量 当我尝试运行 GetInputs 方法时出现语法错误 Function GetDataRange str As String As Range This pro
  • 使用 shell 脚本启动远程 (SSH) Java 应用程序将不会返回本地提示符

    我见过类似的问题 所有解决的问题都已解决 不适用 我在远程计算机中有一个启动 Java 应用程序的 bash 脚本 相关行是 usr bin env bash java cp full path to my jar com whatever
  • Flood Fill算法导致StackOverFlowError

    我正在使用 Java 编写一个简单的绘图应用程序 我正在尝试使用洪水填充算法的递归实现作为我的 桶填充 工具 然而 这always给我一个StackOverFlowError 无论我使用 桶填充工具 的区域有多小 编辑 更改了代码以使其更加
  • 以编程方式将文件检入 TFS 的结果超出预期

    因此 我有一个 NET 应用程序 它会生成一系列文件 将它们输出到本地目录 然后确定是否需要更新现有文件或将新文件添加到 TFS Team Foundation Server 项目中 我的本地计算机上有一个工作区 并且有 10 个不同的工作