Может клиент Подрывной деятельности (svn) символьные ссылки высокой ограды, как будто они были файлами?

Вот очень прост один (протестированный в Chrome, Firefox и IE):

function isNumeric(x) {
  return parseFloat(x) == x;
}

Тесты от вопроса:

console.log('trues');
console.log(isNumeric('-1'));
console.log(isNumeric('-1.5'));
console.log(isNumeric('0'));
console.log(isNumeric('0.42'));
console.log(isNumeric('.42'));

console.log('falses');
console.log(isNumeric('99,999'));
console.log(isNumeric('0x89f'));
console.log(isNumeric('#abcdef'));
console.log(isNumeric('1.2.3'));
console.log(isNumeric(''));
console.log(isNumeric('blah'));

еще Некоторые тестовые сценарии:

console.log('trues');
console.log(isNumeric(0));
console.log(isNumeric(-1));
console.log(isNumeric(-500));
console.log(isNumeric(15000));
console.log(isNumeric(0.35));
console.log(isNumeric(-10.35));
console.log(isNumeric(2.534e25));
console.log(isNumeric('2.534e25'));
console.log(isNumeric('52334'));
console.log(isNumeric('-234'));
console.log(isNumeric(Infinity));
console.log(isNumeric(-Infinity));
console.log(isNumeric('Infinity'));
console.log(isNumeric('-Infinity'));

console.log('falses');
console.log(isNumeric(NaN));
console.log(isNumeric({}));
console.log(isNumeric([]));
console.log(isNumeric(''));
console.log(isNumeric('one'));
console.log(isNumeric(true));
console.log(isNumeric(false));
console.log(isNumeric());
console.log(isNumeric(undefined));
console.log(isNumeric(null));
console.log(isNumeric('-234aa'));

Примечание, что это считает бесконечность числом.

10
задан Ryan B. Lynch 4 September 2009 в 14:47
поделиться

2 ответа

У вас много ограничений, но есть одна вещь, которая всегда работает: взломать исходный код.

Вы можете легко создать свой собственный svn для Linux, хотя создание этого мода может или не может расслабьтесь". В любом случае, если у вас нет управляемых символьных ссылок, вы можете сделать грубый взлом и просто заставить svn всегда следовать за ними, как если бы они были жесткими ссылками.

Если ваш репозиторий действительно содержит версионные ссылки, и вам нужно проверить Из этой части вам понадобится более изощренный прием, который, скажем, использует свойство, которое управляет функцией для каждого файла или для каждой иерархии или чего-то еще.

Может быть еще один выбор: версионные ссылки появились в 1.1.0 , если бы поведение до этого заключалось в переходе по символическим ссылкам, возможно, вы могли бы просто запустить старый клиент.

1
ответ дан 4 December 2019 в 04:53
поделиться

Идея: добавить разделяемую библиотеку с помощью LD_PRELOAD, которая перехватывает stat / open / unlink и т. Д., Чтобы svn не видел символические ссылки. Это избавит вас от необходимости изменять исходный код svn.

0
ответ дан 4 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: