小编Sau*_*nda的帖子

列出给定文件的所有提交(跨所有分支)

此问题与列出特定文件的所有提交密切相关,但它是不同的.我想找出所有分支中的哪些提交修改了给定文件.

为了使其更复杂,给定文件可能在工作树中,也可能不在工作树中.

git

86
推荐指数
3
解决办法
3万
查看次数

AngularJS - 为什么需要$ apply以正确解决$ q承诺?

我正在尝试在我的角度应用程序中编写一个小服务,这将使我能够选择在全局Javascript对象中指定的配置参数.除非文档已准备就绪,否则我不想尝试访问全局配置对象(因为我无法保证在HTML中插入脚本元素的顺序).

但是,我无法理解为什么我需要调用$apply解决方案来实际传播到then回调.

myModule.service('GlobalConfigService', ['$q', '$rootScope', function($q, $rootScope) {
    var def = $q.defer();
    $(document).ready(function() {
        def.resolve(MyConfig.val);
        $rootScope.$apply();
    });

    def.promise.then(function () {
        console.log('I am called only when $apply() is called. Why?');
    });

    return def.promise;
}]);
Run Code Online (Sandbox Code Playgroud)

angularjs

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

合并中缺少提交的谜团

我有这个奇怪的问题,Git合并我无法解释或分类.这是一个缺失的提交.合并出错了吗?它是否已损坏数据?以下是存储库历史记录的样子:

master----\----commit A----cherry-picked changesets from topic---commit B--\----commit C----merge---
           \                                                                \              /
            topic-----------------------------------------------------------merge---------/
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,当它master被合并到topic分支中时(为了使它与提交A和B保持同步),提交B引入的变更集就不存在了!如果提交B在修改文件foobar,甚至有很多不显示这些文件与合并而改变.文件foo和文件中甚至没有任何冲突bar

现在,当我合并topic 回来时master,提交B是有效的反转,没有任何日志或逆转的痕迹!

什么可能出错?

git github

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

AngularJS - 如何在提交表单时禁用表单?

在通过AJAX提交时,如何禁用完整表单(其中的所有输入元素)?我已经尝试$scope.form_state在控制器中设置一个变量并将其绑定到提交按钮的ng-disabled属性,但它似乎是一种解决方法.应该有一种更容易+直接的方式来做到这一点.

angularjs

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

如何让默认值来自数据库?

为什么user对象仍具有Nothing用于createdAtupdatedAt?为什么这些字段没有被数据库分配?

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
User
  email String
  createdAt UTCTime Maybe default=CURRENT_TIME
  updatedAt UTCTime Maybe default=CURRENT_TIME
  deriving Show
|]

main = runSqlite ":memory:" $ do
  runMigration migrateAll
  userId <- insert $ User "saurabhnanda@gmail.com" Nothing Nothing
  liftIO $ print userId
  user <- get userId
  case user of
    Nothing -> liftIO $ putStrLn ("coulnt find userId=" ++ (show userId))
    Just u -> liftIO $ putStrLn ("user=" ++ (show user))
Run Code Online (Sandbox Code Playgroud)

输出:

UserKey {unUserKey …
Run Code Online (Sandbox Code Playgroud)

haskell yesod

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

在类型级别编码身份验证的存在/不存在

上下文:从将运行时错误转换为编译时错误的角度来看,我正在接近Haskell.我的假设是,如果可以在程序类型本身内编写业务逻辑,那么这是可能的.

我正在写一个Telegram bot,我公司的用户应该可以访问它.为了实现这种"限制",每当有人开始与机器人聊天时,它将chat_id在表格中查找并检查是否oauth_token存在有效.如果没有,系统会首先向用户发送完成Google OAuth的链接(我们公司的电子邮件托管在Google Apps for Business上).

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
VLUser
  email String
  chatId Integer
  tgramUserId Integer
  tgramFirstName String
  tgramLastName String Maybe
  tgramUsername String Maybe
  oauthToken String Maybe
  deriving Show
|]
Run Code Online (Sandbox Code Playgroud)

具有有效权限的用户oauth_token将能够为Telegram bot提供一些命令,未经身份验证的用户无法提供这些命令.

现在,我试图在类型级别本身编写这个逻辑.我的Haskell代码中将有一些函数能够接受经过身份验证和未经身份验证的用户作为参数; 而某些功能应该只接受经过身份验证的用户.

如果我继续传递相同类型的用户对象,即VLUser无处不在,那么我将不得不小心检查oauthToken每个函数的存在.有没有办法创建两种用户类型 - VLUser以及VLUserAuthenticated:

  1. 两者都映射到相同的基础表
  2. VLUserAuthenticated只有在有A的情况下才能实例化oauthToken

haskell yesod

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

Rails 3:访问​​twitter引导变量+ mixins而不导入它

我第一次使用Rails 3(特别是资产流水线和less-rails-bootstrap),所以我可能会遗漏一些非常基本的概念.我已经尝试了两种方法将Twitter引导程序CSS包含到我的项目中,并且两者都有问题.

方法#1: app/assets/stylesheets/application.cssrequire twitter/bootstrap.这包括使用单独的链接/ href标记的bootstrap css文件,这很好.然而,问题是,在我的自定义CSS文件,说app/stylesheets/mystyles.css我无法访问引导代码中,像少定义的变量+混入@gray,.box-shadow等等.

方法2:@import 'twitter/bootstrap'在顶部app/assets/stylesheets/mystyles.css.这允许我访问less(在bootstrap代码中)定义的变量+ mixins,这很好.但是,问题在于它会在mystyles.css增加文件大小的顶部引入整个引导程序CSS .如果有一堆不同的样式表@import twitter/ bootstrap会导致很多重复.

处理这种情况的推荐方法是什么?

ruby-on-rails-3 twitter-bootstrap

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

货币/货币值 - 如何使用JSON存储在数据库和传输中?

在DB中存储货币/货币值,在服务器端应用程序中处理它们,最后通过JSON API将它们发送到浏览器的最佳做法是什么?

我想出了两种方法,但我不确定如何权衡利弊:

将值存储为最小货币单位的整数

  • 基本上这意味着数据库将以美分/平均/先令/等方式存储货币价值.
  • 服务器端应用程序将此值映射到常规整数变量.
  • JSON API将该值表示为常规JSON编号.
  • 这种方法的缺点是,在向用户显示货币值之前必须不断除以100,并且在存储任何用户输入之前总是乘以100.
  • 可能的陷阱:您如何定义最小的货币单位?它是基于两个小数点还是四个小数点?是否有任何货币没有100:1的比率,即100美分= 1美元.

将值存储为十进制/数字,具有固定的精度和比例

  • DB将货币值存储为具有固定精度和比例的十进制/数字类型,例如.NUMERIC(10,2)
  • 服务器端应用程序将这些映射到特殊对象,这可以保持计算的精度和比例,例如.BigDecimal在Ruby中.
  • JSON API将这些值作为字符串而不是数字进行交换.因为JSON解析器会自动将数字解析为浮点数,从而导致精度损失.
  • 这种方法的缺点是服务器端的所有计算都需要在盒装数据类型中发生(可能更慢)并且JSON解析器需要知道某些字符串实际上不是字符串,而是数字值.
  • 这样做的好处是你不需要经常乘以除以100.

是否有普遍接受的最佳做法?

postgresql json currency

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

无法让--cache-from工作

我按照https://cloud.google.com/container-builder/docs/speeding-up-builds#using_a_cached_docker_image上的说明操作,我正在尝试设置使用上一版本缓存的图片的docker 版本.

这是我的cloudbuild.yml样子:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['pull', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker']
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--cache-from', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker', '.']
timeout: 120m
images: ['gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker']
options:
  machineType: 'N1_HIGHCPU_8'
Run Code Online (Sandbox Code Playgroud)

这是我的Dockerfile开始:

FROM ubuntu:14.04
SHELL ["/bin/bash", "-c"]
# lots of RUN commands after this
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,从缓存中拉出的docker镜像(作为第一步的结果),都不用于加速实际的docker构建(第二步).它始终在我的Dockerfile中运行整个38步!

我究竟做错了什么?

docker google-cloud-platform google-kubernetes-engine

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

如何链接到Haddock中的命名文档块?

我可能会遗漏一些非常明显的东西(或者可能已经开始暂时失明,盯着Haddock用户指南),但我似乎无法找到任何方式链接到Haddocks中的大块文档

编辑:我正在尝试创建一个内部超链接,从文档的一个部分到另一个命名的文档块.我尝试过以下方法:

-- You may want to take a look at 'findByPkHelpers' section for
-- variations of this function.
--
-- I even tried putting '$findByPkHelpers' but didn't work
--
-- ... snip ...

-- ** Some heading
-- 
-- $findByPkHelpers
Run Code Online (Sandbox Code Playgroud)

haskell haddock

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