Using SVN to maintain your code

Step by step, shows how to maintain your code in LHAASO SVN

LHAASO SVN view via Web (the last revision)

  • 你可以点击该连接 http://svn.lhaaso.ihep.ac.cn/LodeStar/ 查看LHAASO软件的目录结构
    • 其中的offline包含了数据分析所需要的所有package (什么是pacakge
    • offline中包含三个文件夹,trunck,tags,branches
      • trunk中的每个package都存储在trunk目录树中的某个位置,设计者每天结束工作后都会把package更新上传到trunck中的相应pacakge目录中,因此最新的package通常是不成熟的,或者不能编译成功的。
      • tags中的目录结构和trunk是一样的,区别是pacakge中多了一层版本目录,每一个版本都是trunck中的pacakge在某一时刻发展成熟后copy而成的
      • branches和trunk是相同的功能,目前还没有使用的计划
  • 当前LHAASO software svn中的目录结构和计划整理的结构列在如下文件中

The command used by Code developer

  1. 作为一个package的设计/维护者,如何在svn的帮助下设计和发布你的pacakge (什么是pacakge
    • 假设将要设计一个名为RawEvent的pacakge。
    • 和manager沟通,确定RawEvent存放位置,例如:LodeStar/offline/trunk/DataModel/RawEvent/
    • 向manager索要一个svn账号,manager同时为你建立和打开如下文件夹的读写权限:
      • LodeStar /offline/trunk/DataModel/RawEvent/
      • LodeStar /offline/tags/DataModel/RawEvent/
    • 登录lxslc6.ihep.ac.cn, 建立LHAASO软件环境,例如:
      • source /afs/ihep.ac.cn/soft/LHAASO/LodeStar-SLC6/Pre-Release/L19-Pre1_v1r1/setup.sh
    • 将RawEvent目录checkout到本地任意目录tmp下:
    • 你实际上下载了一个空目录tmp/RawEvent, 但是是和svn建立了联系的一个目录
      • 如果你是从0开始写RawEvent pacakge,那么在(注意目录)tmp目录下,使用 cmt create RawEvent v0.0 产生一个RawEvent的基本目录
      • 如果你已经在别的地方发展了RawEvent pacakge,你可以直接将那个RawEvent内的内容全部拷贝到这个RawEvent目录下。
    • 然后参照例子或者说明书开始设计RawEvent
    • 注意设计pacakge的时候,应遵守以下约定,以利于pacakge在合作组内交流。
      • The name of package should be easy recognized
        • package name should be full words, such as Km2aSimulation, or the easy recognized abbreviation, such as Km2aSim
        • the service package should be xxxxxxSvc
        • the tool package should be xxxxxxTool
        • the header files should be put in a separate directory, suggested to be same as package name, not in directory "src"
      • 阅读说明书13.3节“coding convention”, 如何规范化程序编写。
    • 在设计程序的过程中的任何时候,你可以使用以下命令将你编写的文件备案给svn, 同时避免将任何编译过程中产生的二次文件备案给svn
      • svn add src/xxxxx.cc
      • 对于不小心备案的文件,可以使用svn delete xxx清除备案。
    • 在每天工作结束后,可以使用以下命令将所有备案的文件上传到svn上:
      • 在RawEvent目录下: svn commit -m "say somthing to this upload"
    • 第二天开始工作时,可以继续在原来的RawEvent目录中继续你的工作,也可以在一个新的目录中:
    • 在某一个时刻,你的RawEvent已经可以编译使用了,并且已经上传到svn上,可以使用以下命令进行发布:
    • 过了一段时间,你的RawEvent进行了更新,并且上传到了svn上,那么再次可以发布下一个版本:

  1. Make a tag and checkout a tag

The command used by user

  1. Check out packages from LodeStar SVN, same address to view on web
  2. Check out packages from user SVN, same address to view on web

The command used by manager of SVN

  1. Create an account on the SVN reponsitory: people
    • logon to lxslc6.ihep.ac.cn
    • logon to root@202.122.38.82
    • cd /var/www/svn
    • htpasswd passwdpeople zhucg //add account zhucg into password file passwdpeople.
    • vi authpeople.conf //add the read/write for the account.
  2. Config SVN to prevent check in .o, .make, .so, .a, .in, etc. files into SVN. Now only skip .o, .so, .a files.

-- 祝 成光 - 2019-12-18

Comments


Topic attachments
I Attachment History Action Size Date Who Comment
Microsoft Excel Spreadsheetxlsx Structure.xlsx r2 r1 manage 15.2 K 2019-12-25 - 16:00 ZhuChengguang  
Edit | Attach | Watch | Print version | History: r21 | r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2019-12-27 - ZhuChengguang
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback