git svn fetch error: 182135 = 1234abcdef already exists! Why are we refetching it?

症状

我有一个SVN仓库和Git-SVN仓库,两者进行同步。SVN仓库里面有几个提交时间戳不正确,同步到Git-SVN仓库后,时间戳也是不正确的。我手动修复了SVN仓库里的提交时间戳,然后如何修复Git-SVN仓库里的提交时间戳?

问题

提交时间戳错误可能是微不足道的,但它会影响Git时间搜索功能。例如,在TortoiseGit里搜索1/1/2018到9/14/2018的提交,TortoiseGit就不会显示63a958bd之前的提交。因为Git发现63a958bd的时间戳突然变成1969年,便认为之后的提交都是不感兴趣的,作为优化,便不再继续搜索了。

解决方法

[……]

继续阅读

ASP.NET Core自定义本地化:从文本文件读取本地化字符串

本文先简要介绍在ASP.NET Core 2.0里实施全球化和本地化,默认的本地化从资源文件(resx)里读取本地化字符串。本文然后提供一个简单示例,说明如何自定义本地化,以便从文本文件读取本地化字符串。

实施全球化和本地化

全球化和本地化主要在两个位置实施,一是控制器,二是视图。在视图里实施全球化和本地化,要在Startup.ConfigureServices()里添加

services.AddMvc().AddViewLocalization(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderForm[......]

继续阅读

root后可以做什么?

破解禁止开启热点

优化操作

给键盘添加方向键

安装XPosed框架里的GravityBox。进入虚拟按键调整,启用光标控制键。

一加6手机OxygenOS 5.1.9(基于Android 8.1.0)因为定制了虚拟按键部分,所以如果启用虚拟按键调整,会导致菜单键失效。

另外,SwiftKey Keyboard也可以显示方向键,而且不需要root。

重启选项
一加6手机OxygenOS 5.1.9(基于Android 8.1.0)重启手机需要点击四次,即长按电源键、重启、正常重启、点击确认,非常麻烦。

我们可以XPosed框架里的GravityBox优化此[……]

继续阅读

一加6手机Root教程

先上截图

硬件是一加6,操作系统是Android 8.1.0、OxygenOS 5.1.9。

安卓root的一般步骤

首先进行安卓root一般步骤:

  1. 进入操作系统,进入设置->开发者选项,启用OEM解锁。
  2. 进入刷机模式(fastboot),在计算机的命令行里输入fastboot flashing unlock。注意,这一步会清除手机上的用户数据!
  3. 重启手机进入安卓操作系统,安卓此时应是初始化模式。初始化后进入设置->开发者选项,启用高级重启。这个选项启用后,按住电源按钮,系统会弹出菜单让你选择重启到刷机模式、恢复模式还是正常模式。此步骤是可选的。

[……]

继续阅读

Nexus 5X root方法(Android 8.1.0)

2018年7月方法

进入操作系统,进入设置->开发人员设置,允许解锁OEM。

进入刷机模式(fastboot),在电脑的命令行里输入fastboot flashing unlock。

到https://twrp.me/Devices/ 下载Nexus 5X的最新恢复系统。下载的文件应该叫做twrp-???-bullhead.img。

刷入官方镜像8.1.0 OPM6.171019.030.B1,手机启动后进行首次启动配置,然后安装SuperSu应用。这时候打开SuperSu应用,它提示手机没有root。

接着开始root。进入恢复模式,恢复模式应装有Team W[……]

继续阅读

Windows库的用法

Windows 7的资源管理器里引进了库的概念。库是文件夹的集合,并有默认保存位置。当你向库添加文件时,默认向该位置保存此文件。

我建议把库当作一个视图,只能查看,不往里面添加文件。

删除默认的文档库、图片库、音乐库等

用户应养成习惯,把文档放在文档文件夹,图片放在图片文件夹。这些文件夹的默认位置是%userprofile%,跟操作系统同一分区。建议转移到数据分区,参见“我的文档”文件夹的配置

既然我们已经统一把文档放在文档文件夹,图片放在图片文件夹,而库是用来管理多个文件夹,并且这个系统只有我们一个人用,那么就可以删除默认的文档库、图片库、音乐库等。

建立程序库,[……]

继续阅读

JavaScript async/await入门

只能在async方法中使用await关键字。为了使用await一个异步方法,必须把外层函数改为async,那么外层都一直要async了。打破这个循环的方法是不用await这个语法糖,改为.then

定义

JavaScript异步方法和C#的定义类似。若有返回值类型T,则
async T function(){..}
等同于
Promise<T> function(){..}

对于无返回值的方法,
async void function(){..}
等同于
Promise function(){..}

并不是加上async关键字就变成[……]

继续阅读

发布uMatrixCleaner规则清理器

μMatrix是一个浏览器插件,旨在保护隐私和安全性,副作用也包括阻挡广告。一般的广告屏蔽插件用的是一维的屏蔽规则,如一旦有规则vortex.accuweather.com/*.js,则不论什么网页都不能访问这个网址的资源,有点一杆子打死的感觉。而μMatrix可以识别来源网页、目标资源、目标类型,其规则形如accuweather.com vortex.accuweather.com script block,读作从accuweather.com访问vortex.accuweather.com的脚本(script)是禁止(block)的。

更多信息可以参见https://github.c[……]

继续阅读