小编Mar*_*ara的帖子

GIT_ASKPASS 包含用户名和密码

我正在使用 2.20.1 的 Docker 容器中工作git --version,基础映像是 Debian 10。我想使用GIT_ASKPASS甚至更好的配置属性通过 HTTPS 克隆 git 存储库core.askpass。这是我尝试过的:

GIT_ASKPASS=$(mktemp) && chmod a+rx $GIT_ASKPASS && export GIT_ASKPASS
cat > $GIT_ASKPASS <<< '#!/bin/bash
    exec printf "$JENKINS_CREDENTIALS_USR\n$JENKINS_CREDENTIALS_PSW\n"
'
Run Code Online (Sandbox Code Playgroud)

最初我在 Jenkins 中运行它,但我发现我能够在一个简单的 docker 容器中重现相同的问题。$JENKINS_CREDENTIALS_USR$JENKINS_CREDENTIALS_PSW定义如下:

JENKINS_CREDENTIALS_USR=myuser
JENKINS_CREDENTIALS_PSW=mypass
export JENKINS_CREDENTIALS_USR
export JENKINS_CREDENTIALS_PSW
Run Code Online (Sandbox Code Playgroud)

我没有设置任何全局配置属性。~/.git-credentials不存在。错误是:

fatal: Authentication failed for 'https://myserver.com/git/project.git/' 
Run Code Online (Sandbox Code Playgroud)

它的工作原理是在 HTTPS url 中指定用户名,如下所示

git clone https://jenkins@myserver.com/git/project.git .
Run Code Online (Sandbox Code Playgroud)

并仅在 指向的脚本中打印密码GIT_ASKPASS,所以我想知道为什么如果没有 url 中的用户名它就不起作用。文档明确指出

如果GIT_ASKPASS设置了环境变量,则调用该变量指定的程序。在命令行上向程序提供合适的提示,并从其标准输出中读取用户的输入

因为当我尝试克隆时,系统会要求我输入用户名和密码,原始GIT_ASKPASS …

git bash credentials

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

懒惰的量词和前瞻

我正在研究用于在C#中验证URL的正则表达式.现在,我需要的正则表达式必须与http://url中的第一个正则表达不匹配.这是我的第一次尝试:

(https?:\/\/.+?)\/(.+?)(?!https?:\/\/)
Run Code Online (Sandbox Code Playgroud)

但这个正则表达式不起作用(甚至删除(?!https?:\/\/)).以此输入字符串为例:

http://test.test/notwork.http://test
Run Code Online (Sandbox Code Playgroud)

这是我的第一个疑问:为什么捕获组不(.+?)匹配notwork.http://test?懒惰的量词应尽可能少匹配,但为什么不到最后?在这种情况下,我当然错过了一些东西(首先我认为它可能与回溯相关,但我不认为是这种情况),所以我读了这个并找到了解决方案,即使我不确定是最好的因为它说

这种技术没有优于懒惰的点星

无论如何,那个解决方案就是淬火点.这是我的下一次尝试:

(https?:\/\/.+?)\/((?:(?!https?:\/\/).)*)
Run Code Online (Sandbox Code Playgroud)

现在:这个正则表达式正在运行,但不是我想要的方式.只有当网址有效时我才需要匹配.

顺便说一句,我认为我还没有完全理解新正则表达式正在做什么:为什么负面前瞻停留在之前.而不是之后呢? 所以我尝试在它之后移动它.,似乎它匹配url,直到它在第二个http之前找到倒数第二个字符.回到正确的正则表达式,我的假设是负面的前瞻实际上是试图检查.正则表达式已经读过之后的内容,这是对的吗?

其他解决方案已被广泛接受,但我首先更愿意理解这一点.谢谢.

c# regex negative-lookahead

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

同一个lambda的不同定义

我最近打开了这个讨论,从中可以得出以下问题.这个问题是一种持续的讨论.这是代码:

#include <iostream>
#include <functional>

using namespace std;

std::function<int(void)> mylambda(int starter){
    return [starter]() mutable {
        return ++starter;
    };
}

void tester_wrapper(const std::function<int(void)>& cb, int counter){
    if (counter == 10)
        return;
    else{
        cout << cb() << endl;
        tester_wrapper(cb, counter + 1);
    }
}

void tester(const std::function<int(void)>& cb){
    tester_wrapper(cb, 0);
}

int main()
{
    auto getNum = mylambda(1);

    tester(getNum);
    tester(getNum);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,代码执行我所期望的,更具体地说,它打印从2到21的所有数字.但是,如果我的main函数是这样的:

int main()
{
    auto getNum = ([](int starter) {
        return [starter]() mutable {
            return ++starter;
        }; …
Run Code Online (Sandbox Code Playgroud)

c++ lambda closures c++11

5
推荐指数
1
解决办法
205
查看次数

“多数提交数据”和“多数提交数据的快照”有什么区别

多数提交数据多数提交数据的快照之间有什么区别,我应该关心它吗?如果这两个概念完全不同,何时以及如何选择一个?

我在阅读有关 mongodb 中事务的参考时发现了这些描述:https://docs.mongodb.com/manual/core/transactions/#transaction-options-read-concern-write-concern-read-preference,但我不明白之间的差别readConcern: majorityreadConcern: snapshot

transactions mongodb

5
推荐指数
1
解决办法
134
查看次数

Develop分支在gitflow中没有用吗?

每当我在团队中寻找使用git的正确方法时,我们总是会提到git-flow。

我们从一开始就开始将此计划用作圣经。

在此处输入图片说明

时间的流逝,我们最终发现将master保留为带有标记的commit的稳定分支是浪费时间。

为什么要标记稳定的提交,然后按PUSH以掌握已经标记的相同版本。标签存在,您可以随时返回此提交。为什么要麻烦我保留此分支仅包含标签?

这是我们使用的Git-Flow,它的工作原理就像一种魅力。

Master:实际上是我们的开发分支Release:我们创建一个release分支来做最后一个发布测试用例,然后在需要时添加修订。功能:我们从Master分支创建功能,然后将拉取请求发送给master。

实际上,它与gitflow相同,没有包含稳定的分支。

这样做的另一个优点是,MASTER是DEVELOP分支。因此,当新的队友进入该项目时,他可以从克隆项目开始,而他的主人已经与实际开发保持同步。

在图像中:

在此处输入图片说明

我的问题是,如果您只能用相同的结果管理4个分支,为什么还要使用原始的git-flow和5个分支?

git git-workflow git-flow

2
推荐指数
2
解决办法
595
查看次数

jquery父级兄弟选择器后退两步

我试图改变一个元素的类,但似乎无法在这里得到它是我的HTML

<div class = "grand">
  <section class = 'minimized'>
     <div class = "div-1"> <button class = 'assign-show'></button> </div>
  </section>
  <section class = 'assignment'>
     <div class = "div-2"> <button class = 'assign-hide'></button> </div>
  </section>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要的是如果单击assign-show,然后添加 <section class = 'assignment'><section class = 'minimized'>

下面是我的jquery脚本

$('.assign-show').on('click',function(){
    $(this).closest('.minimized').addClass('hide'); 
    $(this).closest('.minimized').addClass('assignment-hide');
    $(this).parent('section').siblings('.assignment').removeClass('hide');
   $(this).parent('section').siblings('.assignment').removeClass('assignment-hide'); 
 });
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于addclass但删除类不起作用.

javascript jquery

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

自有类型的延迟加载

我正在使用 Entity Framework Core 迈向领域驱动设计的第一步。我有一个User实体,在简化版本中,只有IdProfilePhoto。但是,我想将个人资料照片存储在不同的表中,这就是为什么我创建了一个包含个人资料照片的拥有类型并以这种方式配置:

用户:

public class User
{
    private int id;
    public int Id => this.id;

    //private UserProfilePhoto userProfilePhoto;
    public virtual UserProfilePhoto UserProfilePhoto { get; set; }

    private User()
    {
    }

    public static User Create(byte[] profilePhoto)
    {
        var user = new User();
        user.UserProfilePhoto = new UserProfilePhoto(profilePhoto);

        return user;
    }

    public void SetProfilePhoto(byte[] profilePhoto)
    {
        this.UserProfilePhoto = new UserProfilePhoto(profilePhoto);
    }
}
Run Code Online (Sandbox Code Playgroud)

用户资料照片:

public class UserProfilePhoto
{
    public byte[] ProfilePhoto { get; private set; …
Run Code Online (Sandbox Code Playgroud)

c# lazy-loading entity-framework-core ef-core-3.1

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