如何组织我的工作区和工作副本

时间:2012-01-08 11:25:58

标签: php eclipse git svn workspace

我需要有关如何整理文件和文件夹的建议 首先,我在Windows 7 64位下工作,使用PHP作为语言,Eclipse作为IDE。

我曾经将我的所有作品都放在一个文件夹下,所以我只需点击一下根就可以签到/退出。更重要的是,我的所有项目都需要在XAMPP路径下,就像J:\XAMPP\htdocs\my_project一样。

这是我的开发文件夹:

MyProject
  `- trunk
    `- component
      `- backend
      `- frontend
    `- modules
      `- mod_myproject
    `- plugins
MyProject2
  `- etc. etc.

一切都应该在正确的地方,即:

J:\xampp\htdocs\myproject1
    administrator
      `- components
        `- com_myproject        (refers to trunk/component/backend)
    components
      `- com_myproject          (refers to trunk/component/frontend)
    modules
      `- mod_myproject          (refers to trunk/modules/mod_myproject)

我如何组织所有内容,以便更新“dev文件夹”和“工作区文件夹”?

这里有一些信息:

  • 我无法使用PHP函数将文件注册到自动加载
     这就是为什么我是Joomla!开发者和每个扩展都有自己的路径;文件需要在那个地方。
  • 我无法使用符号链接
     我真的不知道为什么,但是使用符号链接我不能使用Xdebug来调试这些文件上的代码,当然我真的需要我的组件上发生的事情
  • 我希望避免复制脚本
     我有一个Ant脚本,直到有一天我启动了deploy脚本而不是commit脚本。点击-.-
  • 浪费了半天的工作
  • SVN或GIT
     即使我不是这些CVS的专业人士,我也可以使用这两个,所以使用一个而不是另一个没有区别。

我真的需要一个建议,因为我觉得我做错了..

1 个答案:

答案 0 :(得分:0)

好吧,好吧,这就是我要做的,但当然是YMMV。

当你使用Eclipse时,你可以使用ant(没有人说ant只用于Java,呵呵)。

如果你使用git,你会遇到经常被忽视但非常有用的git archive命令。

这个例子要求你的路径中有git(使用cygwin或msysgit,我好像更喜欢cygwin)。

所以,让我们在build.xml文件中创建一个ant宏:

<property name="zipout" location="/some/path"/>

<macrodef name="git-deploy">
    <attribute name="src"/>
    <attribute name="dst"/>
    <attribute name="refspec" default="HEAD"/>
    <sequential>
        <exec executable="git" failonerror="true" output="${zipout}/archive.zip">
            <arg value="archive"/>
            <arg value="--format=zip"/>
            <arg value="--prefix=@{dst}/"/>
            <arg value="@{refspec}:@{src}"/>
        </exec>
        <unzip src="${zipout}/archive.zip" dest="/path/to/htdocs"/>
        <delete file="${zipout}/archive.zip"/>
    </sequential>
</macrodef>

然后,您可以使用以下内容从dev目录的根目录中使用此宏:

<git-deploy src="trunk/component/backend" refspec="somebranch"
    dst="administrator/components/com_myproject"/>

然后,您可以定义要发布的属性文件,以便定义您的zipout,htdocs的路径等,并在宏中使用它们。