2012-06-18 123 views
0

我想将我的Mercurial存储库克隆到我的Web服务器上的/ public_html文件夹中。我的水银项目看起来像这样...Clone Mercurial存储库到public_html

- /ProjectName 
    - /public 
    - /application 
    - /config 
    - /library 

我要的是刚刚获得“项目名”的内容为我/的public_html文件夹中。不幸的是,克隆存储库包括“ProjectName”,并且所有的子文件夹都在那里。

任何想法如何做到这一点没有一个符号链接?

+0

'hg clone http:// repo/address .'? – zerkms

回答

4

只要把它放在那里,你可能不想在你的public_html的完整克隆,除非你真的想要在网络上的每一个版本。这并不是什么天生的错误,但是由于你在public_html中有一个.hg,人们甚至可以从中克隆你的存储库。

而是考虑使用hg archive命令,因为他们在某个特定的版本存在其中出口中的所有文件,并把它们无论你想。

例如:

cd your_clone 
hg archive --rev release /public_html 

这需要的代码由release标签指出,(这可能是一个标签,书签或分公司负责人),并把这些文件,但没有一个完整的历史克隆, in/public_html。

+0

这是一个更好的解决方案。 – pyfunc

+0

这是一个非常酷的解决方案。所以我只是在我的服务器上的其他地方克隆回购,然后在需要更新生产文件时随时运行该存档命令? – scott80109

+0

归档文件不会删除已删除的文件,因此要绝对确保您只有最新的文件,通常会删除public_html的内容,然后运行该命令,但只是在现有目录上运行该文件也会非常有效。如果您希望接近零的停机时间,您可以将其归档至public_html_new,然后使用“mv”替换原来的public_html目录。这将全部脚本非常整齐。 –

0

下面是一个简单的步骤,你可以遵循:

cd /public_html 
hg init . 
hg pull ../pathto/ProjectName/ 

这将会把所有的文件和文件夹ProjectNamepublic_html不会产生/public_html/ProjectName

但它仍然会复制所有的都在变幻无常的存储库(文件和文件夹)到你的目录的资源。

+0

此外,它值得一提的是,在比较'clone' - 这种做法不会default'库添加到''.hg/hgrc' – zerkms

+0

如果你这样做,你必须真正也要照顾来配置你的服务器拒绝访问.hg /文件夹,或任何人都可以克隆您的网站的存储库。 –

1

我居然发现一个简单的方法来做到这一点。

hg clone https://[email protected]/me/ProjectName "/home/website/public_html" 

的public_html必须是空的仓库克隆到它,让我感动所有的东西,克隆回购协议,那么移动的预先存在,文件和文件夹回来。

+1

这里的缺点是你每次都克隆一切。最好先做一次,然后“推”或“拉”。 –

+0

我只是做了一次克隆版本库。我使用拉取得最新版本。 – scott80109