有没有办法使用GitHub的"比较视图"来查看两个分支的当前版本之间的差异?(也就是说,要查看相同的差异,如果你这样做了git diff <a-branch> <another-branch>.)
我在这里做了一个小例子.有两个分支:"主"和"其他分支".如果我这样做git diff master..other-branch,这就是差异:
diff --git a/README.md b/README.md
index 495cc9f..3d2c3a0 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
Hello there!
+
+This is a commit to the "other-branch" branch.
Run Code Online (Sandbox Code Playgroud)
您可以从该差异中看到"主"分支和"其他分支"分支之间的差异是添加了一个空行和一行文本,并且没有删除.
但是,如果我尝试使用GitHub比较视图(https://github.com/akenney/compare-view-test/compare/other-branch或https://github.com/akenney/compare-view-test/compare /master...other-branch),它显示了这个差异:
-This is a commit to the master branch.
+Hello there!
+
+This is a commit to the "other-branch" branch.
Run Code Online (Sandbox Code Playgroud)
它将"other-branch"分支与旧版本的"master"分支进行比较,而不是与当前版本进行比较.即使我指定要比较的特定提交(https://github.com/akenney/compare-view-test/compare/8ed0d53...e4470ec),它也会发生同样的事情- 它所显示的差异并不是那些差异两个提交.
我有一个与Django的User模型有一对一关系的Profile模型,我有另一个模型,称为Permission(与Django的内部权限概念无关),它具有Profile的外键.像这样:(为了简单起见,我在这里删除了大部分字段)
from django.db import models
from django.contrib.auth.models import User as DjangoUser
class Account(models.Model):
name = models.CharField(max_length=200, db_index=True)
class Profile(models.Model):
django_user = models.OneToOneField(DjangoUser)
default_account = models.ForeignKey(Account)
class Permission(models.Model):
# Which user has the permission
user = models.ForeignKey(Profile, db_index=True)
# Which account they have the permission on
account = models.ForeignKey(Account, db_index=True)
Run Code Online (Sandbox Code Playgroud)
我想为Permission创建一个序列化器,它将创建如下对象:
{
"user": "me@example.com",
"account": 123
}
Run Code Online (Sandbox Code Playgroud)
其中"account"的值是帐户的主键(这样很简单,我可以使用PrimaryKeyRelatedField),"user"的值是用户的电子邮件地址(这是我尚未想到的部分,因为电子邮件地址不直接存储在Profile对象上,它位于关联的DjangoUser对象上.另请注意,这不是只读的 - 在创建权限时,它需要能够从电子邮件地址反序列化为Profile对象.
到目前为止我尝试过的一些事情,用于在Permission序列化器上表示用户...
1.
user = serializers.RelatedField(read_only=False)
Run Code Online (Sandbox Code Playgroud)
有了这个,如果我将电子邮件地址(或主键或其他任何内容)作为"用户"发布,它会返回400错误,说{"user": "This field is required."}好像我根本没有包含该字段.
2.
user = serializers.SlugRelatedField(slug_field='django_user.email')
Run Code Online (Sandbox Code Playgroud)
有了这个,我明白了AttributeError: 'Profile' object has …
自从升级到IPython版本3(我有3.1.0)以来,每次使用该%timeit命令时,它都会打印出"最慢的运行时间比最快的时间长[数倍].这可能意味着在打印之前正在缓存中间结果"时间结果.即使是非常简单的操作也会发生这种 例如:
In [4]: x = 5
In [5]: %timeit x
The slowest run took 53.99 times longer than the fastest. This could mean that an intermediate result is being cached
100000000 loops, best of 3: 19.8 ns per loop
Run Code Online (Sandbox Code Playgroud)
和:
In [17]: %timeit 22 + 1
The slowest run took 106.15 times longer than the fastest. This could mean that an intermediate result is being cached
100000000 loops, best of 3: 12.2 ns per loop
Run Code Online (Sandbox Code Playgroud)
只有少数情况我可以让它不会发生,例如:
In …Run Code Online (Sandbox Code Playgroud)