所以我有一个.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);
此时我检查文件是否存在,我做了两件事之一.如果文件存在,那么我将文件标记为EDIT然后我将文件写入本地目录,否则我将首先编写脚本然后将文件添加到工作区.我不在乎物理文件是否与我正在生成的文件相同,因为我这样做是为了跟踪变化的SAS70要求
如果它存在我做:
workspace.PendEdit(filename,RecurisionType.Full);
scriptoutthefile(文件名);
或者如果它不存在
scriptoutthefilename(filename);
workspace.PendAdd(文件名,TRUE);
好的,所有这一切都可以解决问题.当我去检查针对PROJECT的挂起更改时,我获得了工作区中本地计算机上所有项目的所有挂起更改.
// Show our pending changes.
PendingChange[] pendingChanges = workspace.GetPendingChanges();
foreach (PendingChange pendingChange in pendingChanges)
{
dosomething...
}
我认为通过将工作空间设置为workspace.GetLocalItemForServerItem(TFSProject),它将仅为我提供该特定工作文件夹的对象.
如果有办法强制工作区对象只处理特定的工作文件夹?
这有什么意义吗?提前致谢...
我的项目是在C#Windows Forms中.在调试时,我使用调试文件夹作为工作目录,但现在我将部署我的项目,我需要指定一个工作目录.我该怎么做?
我正在尝试deploy在我的Makefile中创建一个命令,它只是覆盖到分支deployment,然后将此分支推送到origin.
但是,当工作树不为空时,该命令必须停止/失败并显示错误消息.
类似于以下内容:
deploy:
status=$(git status --porcelain)
test "x$(status)" = "x"
git branch -f deployment
git push origin deployment
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个测试和状态变量似乎没有按照需要运行.
如何实现这一目标?我确实应该使用test吗?
我有一个程序,读取和写入与可执行文件存在于同一目录中的文本文件.要访问该文件,我打电话readFile "./file.txt"
当我从它所在的目录中运行可执行文件时,这可以工作.但是,如果我cd到另一个目录并运行可执行文件(它在我的路径上),Haskell会尝试file.txt从我的终端中的工作目录中获取.如何让Haskell file.txt从可执行文件的位置访问,而不是我的工作目录.我不想硬编码绝对路径,因为我希望可执行文件在某种程度上是可移植的.
我正在使用git并且需要包含在diff结果未跟踪文件中.那么我必须执行什么命令来获得当前工作目录和HEAD之间的所有区别,甚至新文件添加中存在部分差异?
有没有办法将当前工作目录更改为当前脚本目录,并在一个脚本块内运行代码?脚本文件夹未添加到路径.
重新定义:有没有办法将当前工作目录更改为编辑器中当前活动的脚本?
鉴于结构目录结构:
.
??? alpha.js
??? foo
??? beta.js
Run Code Online (Sandbox Code Playgroud)
和文件内容
阿尔法.js
module.exports = "alpha"
Run Code Online (Sandbox Code Playgroud)
foo/beta.js
var cwd = process.cwd()
process.chdir('../')
var alpha = require('./alpha.js')
console.log(alpha)
process.chdir(cwd)
Run Code Online (Sandbox Code Playgroud)
从内foo/beta.js。我希望能够require将当前工作目录视为项目根目录。运行以下命令时,上面的示例不起作用。
node ./foo/beta.js
Run Code Online (Sandbox Code Playgroud)
但是,如果我将代码切换foo/beta.js到以下内容。从系统读取文件并将其传递给 npm 模块_eval。
更新 foo/beta.js
var path = require('path')
var cwd = process.cwd()
process.chdir(path.join(__dirname, '..'))
var fs = require('fs')
var _eval = require('eval')
var alpha = _eval(fs.readFileSync('./alpha.js'))
console.log(alpha)
process.chdir(cwd)
Run Code Online (Sandbox Code Playgroud)
这确实有效,这证明它也应该是可能的require。无论你在哪里运行,如果它总是需要该文件。node ./foo/beta.js或者cd foo && node ./beta.js
有什么方法可以预先设置或设置文件中require使用的目录吗?
当工作区未打开时,我一直尝试将 VS Code 中的默认工作目录设置为正在执行的文件所在的目录。这是其他 IDE(例如 Python IDlE)中的正常行为。我需要这个,以便我的学生可以从他们所在的任何文件夹运行程序,并且它可以使用相对引用打开程序引用的文件。他们始终将该文件与正在运行的文件放在同一目录中(例如他们想要在程序期间打开的 MP3)。
我已经阅读了 VS Code 和 Stackoverflow 中的大量文档几个小时,但没有成功。
我知道将工作区设置到该文件夹可以解决这个问题,但这对我们来说不是一个可行的解决方案,因为他们会一直从不同位置打开文件。
我尝试更改settings.json中的terminal.integrated.cwd以默认获取正在执行的文件所在的目录(如IDlE 中),但没有成功。我找不到为此需要包含在terminal.integrated.cwd 中的字符串。我尝试过以下字符串“.”、“.”、“.\”、“”
我也尝试过这个:
"terminal.integrated.cwd": "${fileDirname}"
Run Code Online (Sandbox Code Playgroud)
但是,当我在重置 VS code 后运行以下代码来查看工作目录是否发生更改时:
import os
cwd = os.getcwd()
print("Current working directory: {0}".format(cwd))
Run Code Online (Sandbox Code Playgroud)
它仍然向我显示工作目录为 c:\users\my_user_name 而不是运行此代码的文件所在的目录。
有人可以告诉我接下来我可以做什么吗?谢谢。
有谁知道如何在JavaScript中设置工作目录?
我用于启动应用程序的代码是:
// Create an object script
oL = new ActiveXObject("WScript.Shell");
oFile = '"C:/Application.exe"';
oL.run(oFile);
Run Code Online (Sandbox Code Playgroud) 是否可以在Visual Studio 2008 C++项目中为"自定义生成步骤"命令设置工作目录?
working-directory custom-build-step visual-studio-2008 visual-studio visual-c++