小编Dav*_*mit的帖子

Git Flow 流程发送功能进行测试,仅将特定功能部署到上线

我们正在努力解决 Git Flow 流程,并将功能部署到我们的测试和实时环境:

  • 我们希望将所有准备好测试的功能组合起来并部署到测试环境中。
  • 我们只想将特定功能部署到实时环境

我们使用 Git Flow 的方式存在的问题:

  1. 开发人员 A 按照正常的 gitflow 流程从“develop”创建功能,并在新功能中进行开发。当准备好测试时,他将其功能合并到“开发”分支中,并将“开发”分支部署到测试环境。

  2. 开发者 B 随后遵循相同的流程。这两个功能现在都合并到“开发”分支中,并且这两个更改在测试环境中都可见。

  3. 客户在测试环境中进行测试,但仅批准开发人员 A 所做的更改发布到实时环境。因此,他将从“开发”创建一个新的“发布”分支。 但这个问题是,这将包括开发者 B 的更改。

仅发布开发人员 A 的更改的最佳实践是什么?

目前,我们正在遵循以下过程,这使我们能够将每个功能发布到实时服务器。但一定有更好的办法吗?

我们遵循正常的 Gitflow 设置,但我们还创建一个名为“qa”的新分支,这将从主“分支”创建。这是我们遵循的程序:

  1. 拉最新的“开发”分支
  2. 使用 gitflow 从“开发”创建功能
  3. 在一个功能中进行所有开发
  4. 一旦准备好进行测试,
    • 拉最新的“qa”分支
    • 在“qa”分支中
    • 将您的功能合并到“qa”中
  5. 将“qa”分支发布到QA服务器
  6. 如果需要修复任何错误,请从步骤 3 开始重复
  7. 如果客户端出于某种原因不再需要此功能,并且需要将其删除
    • 删除该功能
    • 撤消合并到 qa
  8. 如果客户对测试感到满意,请选择您的功能,然后按照 git 流程完成该功能。(这将合并到“开发”中)
  9. 选择开发分支,并使用 GitFlow 创建新版本
  10. 使用 Gitflow 完成发布(或根据需要捆绑多个版本)
  11. 准备上线时
    • 确保您在主分支中
    • 如果可能的话,测试项目并进行更改
    • 将所有需要的文件复制到Live服务器

但是通过创建这个“QA”分支,我们根本没有按照其预期使用开发分支,从而使其变得多余。

我通读了这些答案,但对我们没有太大帮助,或者我不明白这里这里

git version-control merge git-flow

7
推荐指数
1
解决办法
2464
查看次数

LINQ选择新对象,在函数中设置对象的值

LINQ用来在这个对象中选择一个新twoWords对象List,并通过调用一个函数/方法来设置这些值.

请看看这是否有意义,我已经简化了很多.我真的想使用linq语句from select.

第一个函数GOGO将起作用,第二个函数失败(尽管它们不执行相同的任务)

// simple class containing two strings, and a function to set the values
public class twoWords
{
    public string word1 { get; set; }
    public string word2 { get; set; }

    public void setvalues(string words)
    {
        word1 = words.Substring(0,4);
        word2 = words.Substring(5,4);
    }
}

public class GOGO
{

    public void ofCourseThisWillWorks()
    {
        //this is just to show that the setvalues function is working
        twoWords twoWords = …
Run Code Online (Sandbox Code Playgroud)

c# linq list

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

Git分支模型策略

我们正在尝试遵循gitflow分支模型,但有一个转折点.

我们有四个可以部署产品的服务器环境,每个服务器都有一个目的:开发,内部测试,外部测试和生产.

  • DevServer,开发人员在开发时测试他们的不同功能.开发人员无法在他们的计算机上进行本地测试,他们必须在DevServer上进行更改才能进行测试
  • TestServer,一旦开发人员完成,QA测试人员就会测试多个功能
  • ReleaseServer,在将版本移至生产环境之前对其进行单独测试
  • ProductionServer.生产服务器

我们试图尽可能简化合并/冲突解决方案,因此我们创建了两个不属于gitflow模型的额外分支.

正常的gitflow分支

  • 开发
  • master(匹配'ProductionServer')
  • featureXXX
  • releaseXXX(每周版本部署到'ReleaseServer')

但这两个分支也不标准,可能需要改变......

  • dev-release(DevServer的副本)
  • 测试版(TestServer的副本)

然后过程如下:

  • 开发人员从'develop'创建'featureXXX'
  • 多个开发人员将他们不同的"功能"合并到"dev-release"分支中,并且"dev-release"分支被发布到"DevServer",然后所有开发人员都可以测试他们的不同功能.并非所有这些功能都将在下一个版本中
  • 一旦开发人员对上面的开发测试感到满意,他们就将'featureXXX'合并到分支'test-release'中,并将其部署到'TestServer'.并非所有功能都属于同一个下一个版本.
  • 一旦对featureXXX进行'TestServer'测试,开发人员就可以将他们的featureXXX关闭为'develop'.
  • 开发人员然后创建一个新的'releaseXXX'或将他们的'featureXXX'合并到现有的'releaseXXX'中.
  • 'releaseXXX'分支部署到'ReleaseServer'并进行测试.
  • 一旦'releaseXXX'测试签署,'releaseXXX'将合并到develop和master中,并部署到'ProductionServer'

我们搞乱了整个gitflow模型吗?

这是我们的分支流程: 在此输入图像描述

git branching-and-merging git-flow branching-strategy

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

Wpp.targets中的MsDeploySkipRules不使用PublishProfiles

我通过visual studio通过PublishProfile发布我的MVC项目(通过UI,右键单击项目,发布)并勾选清除目标文件夹的选项.但我不希望清除特定文件夹"下载"

我花了无数个小时试图完成这项工作,我想我的代码与此处解释的完全相同,但它仍然会删除"下载"文件夹

另外作为下面的示例,我有"favicon"的ExcludeFromPackageFiles,如果我取消选择目标文件夹的删除(只是为了表明我的wpp目标实际上正在运行).

下面是我的projectname.wpp.targets文件

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- this doesnt work -->
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>

  <PropertyGroup>
    <UseMsDeployExe>true</UseMsDeployExe>
  </PropertyGroup>

  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipErrorLogFolder1">
        <SkipAction>Delete</SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>ErrorLog</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>

  <!-- this works! -->
  <ItemGroup>
    <ExcludeFromPackageFiles Include="favicon.ico">
      <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget>
    </ExcludeFromPackageFiles>
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

asp.net msbuild visual-studio-2012 publish-profiles

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