假设我们在github上有以下存储库结构:
company:project.git
\- company:submodule.git
Run Code Online (Sandbox Code Playgroud)
我公司的开发人员分配公司项目,使他的工作区看起来像这样:
developer:project.git
\- company:submodule.git
Run Code Online (Sandbox Code Playgroud)
对于90%的开发人员来说这很好,因为他们不更改子模块库,他们只在项目中工作.现在假设有一个新功能需要改进子模块.负责此操作的开发人员将他的工作空间转换为:
developer:project.git
\- developer:submodule.git
Run Code Online (Sandbox Code Playgroud)
到达那里并不简单,因为他需要用另一个子模块替换子模块(对于git,子模块的原始和分支是两个不同的东西).
如果这个开发人员在库上工作了一段时间,他会将这个结构提交给他的主分支,所以他在github上的fork总是使用forked子模块.
一旦他准备好开发,他就会创建一个拉取请求.问题是,合并拉取请求时,主存储库将如下所示:
company:project.git
\- developer:submodule.git
Run Code Online (Sandbox Code Playgroud)
这是有问题的,因为现在每个跟踪公司分支的开发人员都会得到开发人员的子模块.
要解决这个问题,在开发人员提出拉取请求之前,应该将他的主分支移回公司:submodule.git - 这非常尴尬,特别是因为在本地他总是仍然想要使用developer:submodule.饭桶.
我们已经尝试了几个工作流程,而上述问题是我们唯一没有良好工作流程的问题.
我在Amazon S3上托管文件,我希望使用预先签名的URL进行访问.
对于简单的GET请求,这非常有效.然而,有一些客户端首先执行HEAD请求(以检索文件大小).由于URL中的签名包括http动词(GET vs HEAD),因此头部请求失败.
客户只需:
HEAD http://(bucketname).s3.amazonaws.com/filename?AWSAccessKeyId=(mykey)&Expires=(timestamp)&Signature=(sig)
GET http://(bucketname).s3.amazonaws.com/filename?AWSAccessKeyId=(mykey)&Expires=(timestamp)&Signature=(sig)
Run Code Online (Sandbox Code Playgroud)
我不能改变客户端使用不同的URL来获取头部.有没有办法让亚马逊使用同一资源接受HEAD和GET的签名?