Mercurial > public > mercurial-scm > hg
comparison mercurial/hg.py @ 3851:8f18e31c4441
add "requires" file to the repo, specifying the requirements
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sun, 10 Dec 2006 00:06:59 +0100 |
parents | 972d14a5a227 |
children | c0b449154a90 |
comparison
equal
deleted
inserted
replaced
3850:a4457828ca1a | 3851:8f18e31c4441 |
---|---|
147 src_lock = src_repo.lock() | 147 src_lock = src_repo.lock() |
148 except lock.LockException: | 148 except lock.LockException: |
149 copy = False | 149 copy = False |
150 | 150 |
151 if copy: | 151 if copy: |
152 # we lock here to avoid premature writing to the target | 152 def force_copy(src, dst): |
153 try: | |
154 util.copyfiles(src, dst) | |
155 except OSError, inst: | |
156 if inst.errno != errno.ENOENT: | |
157 raise | |
158 | |
153 src_store = os.path.realpath(src_repo.spath) | 159 src_store = os.path.realpath(src_repo.spath) |
154 dest_path = os.path.realpath(os.path.join(dest, ".hg")) | 160 dest_path = os.path.realpath(os.path.join(dest, ".hg")) |
155 dest_store = dest_path | 161 dest_store = dest_path |
156 if not os.path.exists(dest): | 162 if not os.path.exists(dest): |
157 os.mkdir(dest) | 163 os.mkdir(dest) |
158 os.mkdir(dest_path) | 164 os.mkdir(dest_path) |
165 # copy the requires file | |
166 force_copy(src_repo.join("requires"), | |
167 os.path.join(dest_path, "requires")) | |
168 # we lock here to avoid premature writing to the target | |
159 dest_lock = lock.lock(os.path.join(dest_store, "lock")) | 169 dest_lock = lock.lock(os.path.join(dest_store, "lock")) |
160 | 170 |
161 files = ("data", | 171 files = ("data", |
162 "00manifest.d", "00manifest.i", | 172 "00manifest.d", "00manifest.i", |
163 "00changelog.d", "00changelog.i") | 173 "00changelog.d", "00changelog.i") |
164 for f in files: | 174 for f in files: |
165 src = os.path.join(src_store, f) | 175 src = os.path.join(src_store, f) |
166 dst = os.path.join(dest_store, f) | 176 dst = os.path.join(dest_store, f) |
167 try: | 177 force_copy(src, dst) |
168 util.copyfiles(src, dst) | |
169 except OSError, inst: | |
170 if inst.errno != errno.ENOENT: | |
171 raise | |
172 | 178 |
173 # we need to re-init the repo after manually copying the data | 179 # we need to re-init the repo after manually copying the data |
174 # into it | 180 # into it |
175 dest_repo = repository(ui, dest) | 181 dest_repo = repository(ui, dest) |
176 | 182 |