小编xre*_*ref的帖子

获取Subversion的SVN用户列表 - > Git migration?

我一直在查看一些SVN - > Git迁移,他们都提到在迁移之前获取正确的用户列表,特别是通过使用命令:

svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq
Run Code Online (Sandbox Code Playgroud)

我可以访问托管单个存储库的Ubuntu服务器(包含9个项目),但本地没有SVN安装.是否可以在服务器上运行该命令以获取用户名列表?目前它只是回报错误:

svn: E155007: '/var/subversion/' is not a working copy
Run Code Online (Sandbox Code Playgroud)

svn git

23
推荐指数
2
解决办法
2万
查看次数

使用Bash变量进行扩展 - {0 .. $ foo}

WEEKS_TO_SAVE=4
mkdir -p weekly.{0..$WEEKS_TO_SAVE}
Run Code Online (Sandbox Code Playgroud)

给我一个名为daily的文件夹.{0..4}

在创建我缺少的文件夹时是否有大括号扩展的秘密?

bash brace-expansion

13
推荐指数
3
解决办法
5672
查看次数

用sed跳过/删除非ascii字符

Chip,Dirkland,DrobæSphereInc,cdirkland @ hotmail.com,usa

我一直在尝试使用sed来修改.csv中的电子邮件地址,但上面的一行仍然让我沮丧,使用如下命令:

sed -i 's/[\d128-\d255]//' FILENAME
Run Code Online (Sandbox Code Playgroud)

从这个stackoverflow问题

似乎没有工作,因为我得到'无效的校对字符'错误.

理想情况下,我根本不想改变组合的AE角色,我宁愿只是跳过它,因为我不是试图操纵该文本而是操纵电子邮件地址.只要那个AE在那里虽然它导致我的sed替换在一行之后失败,但是删除该字符并且它处理整个文件.

有任何想法吗?

sed

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

从Subversion迁移到git,克隆所有分支并推送通过gitolite?

我一直在努力将我们的9个项目在一个SVN仓库中移动到9个独立的git repos,由gitolite在服务器上管理,然后关闭SVN.其中七个很容易,因为他们没有分支或标签所以在我的工作站上我能够做一个简单的事情:

git svn clone --stdlayout --no-metadata -A svnauthors.txt svn+ssh://user@host/var/subversion/project tempProject
Run Code Online (Sandbox Code Playgroud)

然后从我的工作站推送到gitolite服务器:

 git remote add origin ssh://gitolite@host/project
 git push -u origin master
Run Code Online (Sandbox Code Playgroud)

他们一直都很努力.现在最后两个项目更加困难,每个项目大约有30个标签/分支.在上面的其中一个项目中运行'git svn clone'后,我看到:

$ git branch -a
* master
  remotes/BatchUpload
  remotes/clarify_breadcrumb
  remotes/contact_type
  remotes/contact_upload_improvements
  remotes/file_cabinet
  remotes/mobile
  remotes/summary_tiles
  remotes/summary_updates
  remotes/tags/release-2.1.2
  remotes/tags/release-3.0.1
  remotes/tags/release-3.0.2
  remotes/tags/release-3.0.2c
  remotes/tags/release-3.1.1
  remotes/tags/release-3.1.3
  remotes/tags/release-3.1.4
  remotes/tags/release-3.1.5
  remotes/tags/release-3.1.5.UPDT
  remotes/tags/release-3.2
  remotes/tags/release-3.2.1
  remotes/tags/release-3.2.2.1
  remotes/tags/release-3.2.3
  remotes/tags/release-3.2.4
  remotes/tags/release-3.2.6
  remotes/tags/release-3.2.7
  remotes/tags/release-3.2.7.1
  remotes/trunk
  remotes/user_man_batch_upload
  remotes/user_management
Run Code Online (Sandbox Code Playgroud)

现在我如何将所有这些标签/分支下载到我的本地工作站,以便我可以通过gitolite推送它们并永久关闭SVN服务器?我需要在本指南中做些什么,为每个分支和标记执行'git checkout -b'?我应该使用svn2git或其他工具吗?

svn migration git

9
推荐指数
2
解决办法
6475
查看次数

ansible可以在剧本中间获取更新的事实吗?

我在运行一个完整的剧本时遇到了麻烦,因为后来播放的某些事实依赖于在早期剧本中被修改,但是ansible不会在中期更新事实.

运行ansible somehost -m setup时,整个剧本开始对新的VPS:

"ansible_selinux": {
    "status": "disabled"
}, 
Run Code Online (Sandbox Code Playgroud)

我的剧本包含一个安装SELinux并重新启动服务器的游戏(同时是ansible wait_for),后面的任务使用条件when: ansible_selinux.status != 'disabled'.但是,即使SELinux现在已安装并执行(需要重新启动),系统的事实仍会显示SELinux已禁用,因此条件失败并跳过任务.

再次运行剧本当然有效,因为事实已更新并现在返回:

"ansible_selinux": {
    "config_mode": "enforcing", 
    "mode": "enforcing", 
    "policyvers": 28, 
    "status": "enabled", 
    "type": "targeted"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让事实刷新中期剧本?也许黑客是set_fact在重启后自己在ansible_selinux.status上?

更新:这太简单了,感谢BruceP我在SELinux游戏结束时添加了这个任务以获取更新的事实

- name: SELinux - Force ansible to regather facts
  setup: filter='ansible_selinux'
Run Code Online (Sandbox Code Playgroud)

selinux ansible ansible-playbook

8
推荐指数
2
解决办法
5726
查看次数

使用OpenCSV将CSV解析为多个/嵌套bean类型?

我有各种CSV,包含一些标准列和一些完全随机的字段:

firstname, lastname, dog_name, fav_hat, fav_color
bill,smith,fido,porkpie,blue
james,smith,rover,bowler,purple


firstname, lastname, car_type, floor_number
tom, collins, ford, 14
jim, jones, toyota, 120
Run Code Online (Sandbox Code Playgroud)

所以我试图将它们解析为Person.class bean,它包含firstname和lastname,然后我有一个名为PersonAttribute.class的第二个类来保存......还有其他什么.

这两个类的讽刺大纲:

class Person {
 public String firstname;
 public String lastname;
 public List<PersonAttribute> attribs;
}

class PersonAttribute {
 public Person p;
 public String key; // header name, ex. 'car_type'
 public String value; // column value, ex. 'ford'
}
Run Code Online (Sandbox Code Playgroud)

我一直在opencsv中使用CsvToBean函数:

public static List<Person> parseToBeans(File csvFile, HashMap<String, String> mapStrategy, Class beanClass) throws IOException {
    CSVReader reader = null;
    try {
        reader …
Run Code Online (Sandbox Code Playgroud)

java opencsv supercsv

6
推荐指数
1
解决办法
8370
查看次数

如果URL包含GET参数或尾部斜杠,则后退按钮不刷新页面?

我有一个CodeIgniter站点,在登录页面被命中时为用户分配UUID.重新加载登录页面将分配一个新的UUID,但是一旦开始浏览表单,您的UUID将保持不变.然而,当用户点击后退按钮时,我不太了解某些事情,并且根据他们到达的URL,行为会有所不同?

案例1:domain.com/somehash?key=valuedomain.com/somehash/

如果您使用包含GET参数的上述网址到达,请提交第一个表单(其中包含您的uuid),然后按后退按钮,您将返回到目标网页,但您的UUID不会更改.

案例2: domain.com/somehash

没有GET参数,如果您提交第一个表单(包含您的uuid)并按后退按钮,您将返回到登录页面并收到一个新的uuid.

我在最新的Chrome和Firefox中对此进行了测试,是否与他们实施的某种缓存策略相关联?理想情况下回击不会刷新页面.

编辑:我应该注意我们不能使用cookie作为这个工具,因此会话已经结束

进一步编辑:只需转到domain.com/,添加反斜杠,即可在按下后退按钮时停止刷新UUID.可能与CodeIgniter routes.php或.htaccess相关?

相关的.htaccess条目:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)

routes.php文件:

$route['default_controller'] = "home";
$route['404_override'] = '';

$route['(:any)'] = 'home/index/$1';
Run Code Online (Sandbox Code Playgroud)

php firefox google-chrome codeigniter

5
推荐指数
1
解决办法
673
查看次数

在 GKE 上启用 Stackdriver 结构化日志记录

我在 GKE 上的 k8s 集群fluentd默认有一个pod 设置(当前命名为fluentd-gcp-v3.1.0-....),但所有日志都以非结构化的形式出现在单个textPayload字段中。让我的 nginx(和所有其他)日志以某种jsonPayload格式出现会更好。

结构化记录的文档有很多信息,如果你将要自己手动安装代理,但似乎没有要上哪里GKE得到启用日志结构化信息的任何fluend默认安装在幕后。

脱壳到其中的一个fluentd容器我看到下面的文件,这些文件不是默认CONFIGS(nginx/ syslog/ apache)上面列出的结构化测井文档。

/etc/google-fluentd/config.d

containers.input.conf
monitoring.conf
output.conf
system.input.conf
Run Code Online (Sandbox Code Playgroud)

所以基本上,我在 GKE/Stackdriver 上有非结构化的 nginx 日志。如何将它们转换为结构化?

fluentd google-kubernetes-engine google-cloud-stackdriver

4
推荐指数
1
解决办法
1301
查看次数

git“无法读取对象”和“无法找到”错误

由于某种原因,我突然收到几个月前发生的合并的提交错误?使用Gitolite推送到中央服务器,并在本地添加git flow扩展。错误是:

git push:

fatal: failed to read object 02a261fad3eae408b04d1941334875d73ddd3f57: Permission denied
error: unpack failed: unpack-objects abnormal exit
Run Code Online (Sandbox Code Playgroud)

而且我无法在本地或服务器上找到该对象

git pull:

error: unable to find 379d1971a1037a97919ce37342ee7a60fc611946
error: unable to find 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9
error: unable to find 0995f5098e0a96f642c6730231d997dd6e074697
Run Code Online (Sandbox Code Playgroud)

好的,尝试新鲜的git克隆如何:

error: unable to find 379d1971a1037a97919ce37342ee7a60fc611946
error: unable to find 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9
error: unable to find 0995f5098e0a96f642c6730231d997dd6e074697
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: fatal: failed to read object 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9: Permission …
Run Code Online (Sandbox Code Playgroud)

git gitolite

3
推荐指数
1
解决办法
3734
查看次数

在OpenCSV中使用captureHeader

也许我不理解OpenCSV中的captureHeader()方法是什么,但该方法抓取CSV文件的头并将受保护的'header'变量设置为这些值的String数组.

但是那么如何访问这些标题值以尝试匹配从csv中的"first_name"到Bean中的"firstName"?想法是在实际解析完整的csv文件之前从这些头创建MappingStrategy.但是captureHeader()是一个空格而且'header'受到保护?

OpenCSV API

java opencsv

3
推荐指数
1
解决办法
3746
查看次数