标签: working-directory

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


所以我有一个.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# api tfs working-directory checkin

4
推荐指数
1
解决办法
9608
查看次数

如何在Visual Studio 2010项目中设置工作目录?

我的项目是在C#Windows Forms中.在调试时,我使用调试文件夹作为工作目录,但现在我将部署我的项目,我需要指定一个工作目录.我该怎么做?

c# working-directory

4
推荐指数
1
解决办法
7924
查看次数

如何在makefile中强制使用干净的git工作存储库?

我正在尝试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吗?

git makefile working-directory

4
推荐指数
1
解决办法
2383
查看次数

如何在Haskell中获取可执行文件的目录?

我有一个程序,读取和写入与可执行文件存在于同一目录中的文本文件.要访问该文件,我打电话readFile "./file.txt"

当我从它所在的目录中运行可执行文件时,这可以工作.但是,如果我cd到另一个目录并运行可执行文件(它在我的路径上),Haskell会尝试file.txt从我的终端中的工作目录中获取.如何让Haskell file.txt从可执行文件的位置访问,而不是我的工作目录.我不想硬编码绝对路径,因为我希望可执行文件在某种程度上是可移植的.

io haskell working-directory readfile

4
推荐指数
3
解决办法
1585
查看次数

如何显示当前工作目录和我上次提交的差异?

我正在使用git并且需要包含在diff结果未跟踪文件中.那么我必须执行什么命令来获得当前工作目录和HEAD之间的所有区别,甚至新文件添加中存在部分差异?

git git-diff working-directory staging

4
推荐指数
1
解决办法
6116
查看次数

将matlab中的工作目录更改为当前具有运行块的脚本目录

有没有办法将当前工作目录更改为当前脚本目录,并在一个脚本块内运行代码?脚本文件夹未添加到路径.

重新定义:有没有办法将当前工作目录更改为编辑器中当前活动的脚本?

matlab block working-directory

4
推荐指数
1
解决办法
9696
查看次数

Process.chdir() 对 require 没有影响

鉴于结构目录结构:

.
??? 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使用的目录吗?

javascript module working-directory commonjs node.js

4
推荐指数
1
解决办法
4115
查看次数

如何将VS代码工作目录更改为运行文件目录

当工作区未打开时,我一直尝试将 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 而不是运行此代码的文件所在的目录。

有人可以告诉我接下来我可以做什么吗?谢谢。

python default working-directory visual-studio-code

4
推荐指数
1
解决办法
1万
查看次数

在javascript中设置工作目录

有谁知道如何在JavaScript中设置工作目录?

我用于启动应用程序的代码是:

// Create an object script
oL = new ActiveXObject("WScript.Shell");
oFile = '"C:/Application.exe"';
oL.run(oFile);
Run Code Online (Sandbox Code Playgroud)

javascript activex wsh working-directory

3
推荐指数
1
解决办法
4846
查看次数

3
推荐指数
1
解决办法
3317
查看次数