- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我需要“盲目地”(即无法访问文件系统,在本例中是源代码控制服务器)将一些相对路径转换为绝对路径。所以我在玩点和指数。对于那些好奇的人,我有一个由其他人的工具生成的日志文件,有时会输出相对路径,出于性能原因,我不想访问路径所在的源代码控制服务器来检查它们是否有效等等轻松地将它们转换为它们的绝对路径等价物。
我经历了很多(可能是愚蠢的)迭代试图让它工作 - 主要是迭代文件夹数组并尝试 delete_at(index) 和 delete_at(index-1) 但我的索引当我从自己下面删除数组的元素时,它一直在递增,这对于有多个点的情况不起作用。欢迎任何关于改进它的一般建议或特别是缺乏非连续点点支持的建议。
目前这正在使用我有限的示例,但我认为它可以改进。它无法处理不连续的“..”目录,而且我可能正在做很多我可能不需要做的浪费(且容易出错)的事情,因为我有点 hack。
我找到了很多使用其他语言转换其他类型相对路径的例子,但似乎没有一个适合我的情况。
这些是我需要转换的示例路径,来自:
//depot/foo/../bar/single.c
//depot/foo/docs/../../other/double.c
//depot/foo/usr/bin/../../../else/more/triple.c
到:
//depot/bar/single.c
//depot/other/double.c
//depot/else/more/triple.c
还有我的脚本:
begin
paths = File.open(ARGV[0]).readlines
puts(paths)
new_paths = Array.new
paths.each { |path|
folders = path.split('/')
if ( folders.include?('..') )
num_dotdots = 0
first_dotdot = folders.index('..')
last_dotdot = folders.rindex('..')
folders.each { |item|
if ( item == '..' )
num_dotdots += 1
end
}
if ( first_dotdot and ( num_dotdots > 0 ) ) # this might be redundant?
folders.slice!(first_dotdot - num_dotdots..last_dotdot) # dependent on consecutive dotdots only
end
end
folders.map! { |elem|
if ( elem !~ /\n/ )
elem = elem + '/'
else
elem = elem
end
}
new_paths << folders.to_s
}
puts(new_paths)
end
最佳答案
让我们不要重新发明轮子... File.expand_path
为您完成:
[
'//depot/foo/../bar/single.c',
'//depot/foo/docs/../../other/double.c',
'//depot/foo/usr/bin/../../../else/more/triple.c'
].map {|p| File.expand_path(p) }
# ==> ["//depot/bar/single.c", "//depot/other/double.c", "//depot/else/more/triple.c"]
关于ruby - 相对于绝对路径转换(对于 perforce 仓库路径),我可以更好地做到这一点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836825/
Hortonworks 数据平台 HDP 3.0 有 spark 2.3 和 Hive 3.1,默认情况下 spark 2.3 应用程序(pyspark/spark-sql 等)使用 spark 数据
是否最好让一个软件仓库包含多个文件夹,这些文件夹映射到工作区中的不同路径。或者一个仓库中的多个文件夹映射到多个工作区,或多个仓库映射到多个工作区。 有人对此事有任何实用建议吗? 我还注意到,当我在仓库
Git 是分布式源代码控制系统,对吧。如何在没有集中存储库的情况下连接两个开发人员。 我们的团队使用 Github,如果两个开发人员想在同一个分支上工作,似乎需要将该分支推送到远程,然后他们才能访问它
Maven – 仓库 什么是 Maven 仓库? 在Maven 的术语中,仓库是一个位置(place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 3年前关闭。 Improve this questi
我开始将 git 与我的 .git 目录以及网络根目录中的其他所有内容一起使用。进一步阅读后,这似乎是一种不好的做法。我现在将我的应用程序和系统文件夹放在网络根目录之外。我的网络根目录中唯一剩下的就是
有没有可能没有历史的 Git 仓库?例如,我有一个我工作的本地 Git 存储库,我想将最新版本推送到生产服务器。生产服务器上不应存储任何历史记录。我该怎么做? 最佳答案 你可以看到命令 git arc
Laravel 中的 Repositories 有什么优势?它似乎是从应用程序的业务逻辑中抽象出模型层。虽然这似乎只是让整个请求生命周期变得更加复杂,但收效甚微。 有人可以阐明 Laravel 存储库
我有一个本地 git 服务器在我的 NAS 上运行,我正在我的笔记本电脑和工作站上进行开发,所有这些都在我的本地网络中。所以,如果我想在一个新的空 repo 中开始一个项目,我会关注 this ans
我们正在使用 SVN 来存储 maven 依赖项(组织限制不能像现在那样使用 nexus 或 artifactory maven 存储库)。 SVN 在使用 https 协议(protocol)的网络
我想允许某人查看我在我的私有(private)存储库中所做的工作。我该怎么做? 我看了https://help.github.com/articles/making-a-private-reposit
我试图阻止同事在 git 中再次推送已删除的标签(因为它被错误地推送了一次)。 我知道如何在本地执行此操作以及如何将其推送到远程以及如何指示我的同事以正确的方式从他们的本地存储库中删除已删除的标签。
我已经使用 url 克隆了一个 friend 的 git repo git 克隆 https://github.com/user/repo_name.git 然后我创建了我的分支,提交并尝试将我的代码
我目前正在我的代理机构安排比赛。我想对开发人员可以使用的模块进行一些管理。 是否可以托管 Play 模块和 Maven 库的镜像存储库并将 play 配置为仅使用这些存储库? 我已阅读此内容 docu
我正在尝试在我的 readme.md 中嵌入图像用于在 GitHub 上显示。我以前在公共(public)存储库中没有遇到任何问题,格式如下: ![header image](https://raw.
我想访问公司内部Artifactory实例上自定义开发的Gradle插件。对于公司内部发生的每一个Gradle构建,我都希望如此。我是否缺少任何东西,或者建议的方法是在每个项目的每个Gradle构建之
我想保留我在 docker hub 帐户中使用的图像,同时保持对拉取图像的引用。就像你在 github 上 fork 一个项目一样。 目前我已经尝试过jwilder/nginx-proxy图片。现在我
Perforce 中是否有命令可以获取客户端从软件仓库映射到特定文件夹的信息? 示例: 我有仓库位置//depot/myfolder/somefile.java 我想知道哪些客户端将此位置映射到哪个路
我被指派为一个项目开发一项功能。在几周的时间里,我将花几天时间研究该功能。我将克隆中央仓库。然后我将在本地工作 3 周。在此过程中,我会多次将我的进度提交到我的 repo 协议(protocol)中。
我发现自己越来越喜欢将Rstudio与R markdown文件(.rmd)一起使用,并且我非常喜欢“编织HTML +发布到Rpubs”的便利与同事共享我的工作。不幸的是,发布的文件必须是公开可见的,而
我是一名优秀的程序员,十分优秀!