我的任务是将git repo的发布分支镜像到TFS,以便git中的每个提交映射到TFS中的变更集.所有开发人员只提交git和(假设)不知道TFS.
阅读rcheckin的文档以及相关问题的答案让我相信rcheckin能够做到这一点.
git中的所有提交都被压缩成一个变更集.
复制顺序:
git tfs clone http://tfs:8080 $/tfsrepo
cd tfsrepo
git remote add github git@github.com:REPO/Repo.git
git fetch github
git merge github/release
git tfs rcheckin
Run Code Online (Sandbox Code Playgroud)
这导致单个签入TFS,其中包含所有提交.
克隆后,合并来自源(git)repo的第一个提交,rcheckin以创建共享库
git pull github release又git-tfs rcheckin导致再次挤压.对于原始仓库中的前几个提交,我将它们逐个合并到git-tfs共享仓库中并在每个仓库之后进行rcheckin.
我需要做些什么来保持TFS与git-repo的发布分支保持同步,以便git中的每个提交都有相应的TFS变更集?
我确实对这两个repos都有管理控制权,如果有必要,我可以重新设置git repo,这意味着所有后果.我只是不想失去我们已经创建的历史.
Visual Studio TFS Update 2将Scrum Process Template从2.1更新为2.2.
不幸的是,我无法找到有关确切更改的任何信息.
版本之间有什么变化?而且,更重要的是,如何确定哪些更改对我的项目很重要?
我们有一个本地Artifactory Pro服务器,该服务器提供nuget程序包并使用LDAP对所有用户进行身份验证。从cmdline使用Artifactory-NuGet可以完美地工作,但是当尝试从Visual Studio使用程序包管理器时,身份验证将失败。
我注意到的是,Visual Studio尝试在第一次失败的身份验证尝试后添加域前缀:尝试以“用户”身份登录失败,然后登录身份验证窗口包含“ DOMAIN \ user”作为用户名。
我不确定问题的根源是在Visual Studio中还是在Artifactory中。我注意到对Artifactory的Web访问不接受“ DOMAIN \ user”形式的用户名,即使我认为可以。
所以我的问题是:如何从Visual Studio中对LDAP支持的,由Artifactory提供的经过身份验证的NuGet服务器进行身份验证?
首先,我是COM的新手,目前很困惑.我已经在MSDN和一般网络上阅读了很多关于COM的文档,但是很多文档看起来已经过时且过于复杂.
以下是我认为有必要让它发挥作用.它还没有,所以我肯定我错过了一些东西,但是通过给我的食谱,我希望有人能发现问题:
感谢答案,我更新了问题,以反映综合解决方案.
我们有一个使用C#,C++/Cli和一些原生C++代码的项目.我们使用TeamCity进行构建和测试.
我们使用vstest.console(VS2012测试运行器)运行测试.
对于托管代码,dotCover(集成到TeamCity中)用于代码覆盖.但是,它不适用于本机C++代码(这是预期的).
如何获得代码覆盖率结果我们对原生C++部分的单元测试进入TeamCity?理想情况下,解决方案是免费的.
我注意到LINQ代码中有一些奇怪的行为,并使用两种方法将问题简化为以下最小示例:
IA Find(string n)
{
IA result;
if (!_dictionary.TryGetValue(n, out result))
{
throw Exception();
}
return result;
}
IEnumerable<IA> Find(IEnumerable<string> names)
{
return names.Select(Find).ToArray();
}
Run Code Online (Sandbox Code Playgroud)
这按预期工作.
现在,我删除了.ToArray(),因此该方法如下所示:
IEnumerable<IA> Find(IEnumerable<string> names)
{
return names.Select(Find);
}
Run Code Online (Sandbox Code Playgroud)
此更改将导致不抛出异常,即使在_dictionary中找不到某些名称,但在names参数中也存在这些名称.
是什么原因导致LINQ的意外行为(对我而言)?
我想创建一个通用约束,其中包含类型为值类型(结构)的数组,类似于:
public class X<T> where T : struct[]
Run Code Online (Sandbox Code Playgroud)
或者可能
public class X<T, U>
where U : struct
where T : U[]
Run Code Online (Sandbox Code Playgroud)
但这不起作用.似乎System.Array不能用作类型约束.
那么 - 如何将泛型参数约束为结构数组?
第一个回答后更新:
public interface IDeepCopyable<T>
{
T DeepCopy(T t);
}
public class DeepCopyArrayOfValueTypes<T> : IDeepCopyable<T>
where T : is an array of value types
{
T Copy(T t) {...}
}
Run Code Online (Sandbox Code Playgroud) [StructLayout(LayoutKind.Sequential)]
public struct Demo
{
double X;
double Y;
}
var data = new Demo[128];
FillWithMeaningfulValues(data);
double[] doubles;
Copy(data, out doubles); // ?
Run Code Online (Sandbox Code Playgroud)
如何将演示阵列复制到双精度数组中,而不必(...)通过每个元素?在C++中,我会使用memcpy,但在C#中我没有找到Marshal.Copy中我需要的东西.
void MethodIDoNotWantToUse(Demo[] demo, out double[] doubles)
{
doubles = new double[demo.Length * 2];
for(int i = 0, j = 0; i < demo.Length; ++i)
{
doubles[j++] = demo[i].X;
doubles[j++] = demo[i].Y;
}
}
void MethodIWouldPreferToUse(Demo[] demo, out double[] doubles)
{
doubles = new double[demo.Length * 2];
memcopy(doubles, demo, demo.Length * 2 * sizeof(double));
}
Run Code Online (Sandbox Code Playgroud) 我正在使用LibGit2Sharp将远程存储库克隆到 Windows 临时文件夹中。我的脚本完成后,我想清理一下。但是,我总是收到以下错误:
系统错误:拒绝访问路径“pack-efcef325f8dc897099271fd0f3db6cf4d9f12393.idx”。
pack-efcef325f8dc897099271fd0f3db6cf4d9f12393.idx文件在哪里$local_git_clone_path\objects\pack.
如何完全删除我使用 LibGit2Sharp 克隆的 git repo 的所有本地剩余物?
c# ×4
.net ×2
arrays ×2
git ×2
tfs ×2
value-type ×2
artifactory ×1
c++ ×1
com ×1
com-interop ×1
dotcover ×1
generics ×1
git-tfs ×1
ldap ×1
libgit2sharp ×1
linq ×1
memcpy ×1
nuget ×1
scrum ×1
teamcity ×1
unit-testing ×1