Closed lujun9972 closed 6 years ago
另外,发布函数里的test-dir和store-dir这两个变量有什么不同啊? 我感觉这个test-dir完全莫名其妙的
(store-dir (if (not base-git-commit)
test-dir
"~/.ego-tmp/")) ; TODO customization
这段代码到底是想干嘛?
ego--get-first-commit-after-publish没什么用,主要是ego--get-first-commit-before-publish这个函数
这个pr的目的是自动计算base-commit啊,你不觉得比单纯的~HEAD要合理的多吗?
我个人觉得用这个函数就完全没有必要手输base-commit了
我不明白为什么store-dir的值会根据base-git-commit的不同而不同?
@lujun9972 base-git-commit 不为空就意味着 partial publication,这时候需要用 .ego-tmp 的临时目录,如果为空就意味着 full publication,直接用 test-dir 把内容全部移入就行了。(这里代码写的有点绕,确实不该用 base-git-commit 作为判断 partial 还是 full 的标志位)
这里怎么自动计算 base-commit 的?我以为至少要存个标记在 .git 里面的,不然和 ~HEAD 有何区别?
根据base-git-commit来判断partial还是full不合理啊...不是根据我的选择来判断吗...
找到base-commit的原理很简单,就是先找出html branch publish提交的最新时间,然后早于这个时间的最新的org branch的commit就是了,你看代码就能看出来
base-git-commit 就是是根据 interactive 的交互参数 f 设置的。
自动计算 base-commit 的方法,你不说我还真没看懂- -。不过没有 html branch publish 时间的时候(初始化时)怎么办?会不会 bug?
初始化的时候,用~HEAD没问题吗?
不行就加个判断,如果html-branch不存在的话就完全发布,若html branch存在则必然有做过commit
这种方法对 org branch 和 html branch 为同一个 branch 的情形是失效的…所以正规的方式还是在 .git 里存储标志位
推给 EGO 2.0
如果是这种情况,就算是存在commit里,你也找不到是存在哪个commit中的。 这种情况就应该在检验配置文件的时候检查出来让他们改
@kuangdash 可以自动查出发布前的那个提交版本,是不是就可以不用base-git-commit这个参数了?