这是一个新手问题......
我得到了这个项目,我想使用google.code svn系统,但是,我不知道如何......事实上,我不习惯svn ...这就是我所做的:
svnadmin create octopy_repo
svn import /home/mrt/python/Qt/octopy file:///home/mrt/octopy_repo -m "Initial import"
Adding (bin) /home/mrt/python/Qt/octopy/octopus.png
Adding /home/mrt/python/Qt/octopy/oct.ui
Adding /home/mrt/python/Qt/octopy/zipi
Adding /home/mrt/python/Qt/octopy/octo.py
Adding /home/mrt/python/Qt/octopy/main.py
Adding /home/mrt/python/Qt/octopy/etc
Adding /home/mrt/python/Qt/octopy/etc/config.list
Committed revision 1.
mkdir octopy_working
svn checkout file:///home/mrt/octopy_repo /home/mrt/octopy_working
cd octopy_working
Run Code Online (Sandbox Code Playgroud)
这就是卡住的地方.首先,我编辑一些文件,然后:
svn status
M main.py
svn diff
Index: main.py
===================================================================
--- main.py (revision 1)
+++ main.py (working copy)
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-"""The user interface for our app"""
+"""The user interface for our app some edit"""
import os,sys
import ConfigParser
Run Code Online (Sandbox Code Playgroud)
很好!它知道文件main.py已被编辑,现在我想提交更改:
svn commit -m "Some Text"
Sending main.py
Transmitting file data .
Committed revision 2.
Run Code Online (Sandbox Code Playgroud)
但是,当我在/ home/mrt/python/Qt/octopy中查看main.py时,没有做任何改变......
它发送变化的地方???? 我知道这些变化是在"某个地方"但是,在哪里????
/home/mrt/python/Qt/octopy
从中执行导入的源目录不是工作目录(因此对存储库一无所知).执行导入后,源将以特殊格式(不可直接查看)存储在存储库中/home/mrt/octopy_repo
,并且您实际上不再需要导入的目录.
执行结帐后,您有一个工作目录/home/mrt/octopy_working
,它确实知道存储库.
import ---> repository ---> working ----(edit)---+
^ |
+-------------(commit)------------+
Run Code Online (Sandbox Code Playgroud)
您在工作目录中进行了一些编辑,并提交了它们,将更改发送到存储库.永远不会触及导入的目录svn
,因为它不是工作目录,所以更改将永远不会出现/home/mrt/python/Qt/octopy
.
导入的目录(我们通常将其视为神圣不可侵犯的东西)在导入后被有效地忽略或丢弃,这是一个常见的混淆源.但是你只需要记住,一旦在subversion的控制下,你就可以在一个工作副本(从结账创建)中进行所有编辑.