Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/Internals.java @ 413:7f27122011c3
Support and respect for symbolic links and executable flag, with /bin/ls backed implementation to discover these
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 21 Mar 2012 20:40:28 +0100 |
parents | b015f3918120 |
children | bb278ccf9866 |
comparison
equal
deleted
inserted
replaced
406:d56ea1a2537a | 413:7f27122011c3 |
---|---|
160 public static boolean runningOnWindows() { | 160 public static boolean runningOnWindows() { |
161 return System.getProperty("os.name").indexOf("Windows") != -1; | 161 return System.getProperty("os.name").indexOf("Windows") != -1; |
162 } | 162 } |
163 | 163 |
164 /** | 164 /** |
165 * @param hint optional hint pointing to filesystem of interest (generally, it's possible to mount | |
166 * filesystems with different capabilities and repository's capabilities would depend on which fs it resides) | |
167 * @return <code>true</code> if executable files deserve tailored handling | |
168 */ | |
169 public static boolean checkSupportsExecutables(File fsHint) { | |
170 // *.exe are not executables for Mercurial | |
171 return !runningOnWindows(); | |
172 } | |
173 | |
174 /** | |
175 * @param hint optional hint pointing to filesystem of interest (generally, it's possible to mount | |
176 * filesystems with different capabilities and repository's capabilities would depend on which fs it resides) | |
177 * @return <code>true</code> if filesystem knows what symbolic links are | |
178 */ | |
179 public static boolean checkSupportsSymlinks(File fsHint) { | |
180 // Windows supports soft symbolic links starting from Vista | |
181 // However, as of Mercurial 2.1.1, no support for this functionality | |
182 // XXX perhaps, makes sense to override with a property a) to speed up when no links are in use b) investigate how this runs windows | |
183 return !runningOnWindows(); | |
184 } | |
185 | |
186 | |
187 /** | |
165 * For Unix, returns installation root, which is the parent directory of the hg executable (or symlink) being run. | 188 * For Unix, returns installation root, which is the parent directory of the hg executable (or symlink) being run. |
166 * For Windows, it's Mercurial installation directory itself | 189 * For Windows, it's Mercurial installation directory itself |
167 * @param ctx | 190 * @param ctx |
168 */ | 191 */ |
169 private static File findHgInstallRoot(SessionContext ctx) { | 192 private static File findHgInstallRoot(SessionContext ctx) { |