如何组织我的工作空间和工作副本


How to organize my workspace and working copy

我需要一个关于如何组织我的文件和文件夹的建议
首先,我在Windows764位下工作,使用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)

我如何组织一切,以便更新我的"开发文件夹"answers"工作区文件夹"?

这里有一些信息:

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

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

好吧,好吧,这是我的做法,当然是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"/>

然后,您可以定义一个要源代码的属性文件,以便定义您的zip输出、htdocs路径等,并在宏中使用它们。