ФорумСообществоПрофессиональная деятельностьВзаимопомощь → помогите по hgignore

помогите по hgignore

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 4:01

    есть папка src\var, а в ней неизвестное кол-во подпапок и файлов. Нужно игнорировать все, что в ней, за исключением файлов, начинающихся на точку и файлов с именем info.
    что-то типа такого
    ^src(\\|/)var(\\|/)(.*?)(?!(info|\.(.*?)))$

    но первая (.*?) матчит все. Хуево у меня с регулярками.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 4:31, спустя 29 минут 24 секунды

    Тебе для php-скрипта или для консоли надо?
    Спустя 40 сек.
    у тебя сразу все пути есть или ты рекурсией обходишь вложенные каталоги?
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 5:01, спустя 29 минут 55 секунд

    это не php, это файл типа svnignore только для mercurial'а.
    у меня сразу есть путь

    src/var/foo/bar.php # игнорим
    src/var/foo/.htaccess # добавляем в репо, так как с точки начинается
    Спустя 50 сек.
    (\\|/)

    под вендой и юниксами разные directory separator'ы, поэтому така хуйня
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 8:47, спустя 3 часа 46 минут 4 секунды

    хуета какая
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 10:47, спустя 2 часа 10 секунд

    профи обосрались?
  • Sinkler

    Сообщения: 8022 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 10:53, спустя 5 минут 53 секунды

    профям пофиг?)))
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 10:57, спустя 4 минуты 14 секунд

    Абырвалг, ты неправ
    Sinkler, бинго!
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 15:57, спустя 5 часов 24 секунды

    это не php, это файл типа svnignore только для mercurial'а.

    1. ну а регулярку то где используешь?
    2. вариант каждый путь (строку) обрабатывать отдельно?
    Спустя 262 сек.
    короче по простому лучше находить /. и info и пропускать итерацию :) а иначе обрабатывать…
    но это если проще… я тоже не особый знаток регулярок видимо…
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 23:06, спустя 7 часов 9 минут 1 секунду

    регулярку использую не я а система контроля версий. Находить и пропускать я не могу. Регулярка задается для черного списка (который игнорируем). Белого списка нет
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 23:13, спустя 6 минут 27 секунд

    короче как-то так
    src/var/(((.*?)/){0,})(!?[^.]\w+)

    единственное что \w не допускает пробелов, но хуй с этим
  • pissflaps

    Сообщения: 148 Репутация: N Группа: Кто попало

    Spritz 26 сентября 2010 г. 23:33, спустя 20 минут 34 секунды

    Я не совсем понял, что тебе нужно, может без регулярок обойтись [man]fnmatch[/man] 5.3 (Windows)
    Если так то вариант:
    function searchdir( $path='.', $mask='*', $nocache=0 ){
    static $dir = array();
    if ( !isset($dir[$path]) || $nocache) {
    $dir[$path] = scandir($path);
    }
    foreach ($dir[$path] as $i=>$entry) {
    if ($entry!='.' && $entry!='..' && fnmatch($mask, $entry) ) {
    $sdir[] = $entry;
    }
    }
    if ($nocache)
    unset($dir);
    return ($sdir);
    }
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 23:43, спустя 9 минут 5 секунд

    бля, ребята, у меня нет никакого php. Я пишу правила для official&client=firefox">hgignore
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 26 сентября 2010 г. 23:44, спустя 1 минуту 31 секунду

    профи буэ :D
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 26 сентября 2010 г. 23:44, спустя 20 секунд

    $entry!='.' && $entry!='..'

    это плохой подход.

    $files = array_diff(scandir('upload/images/pages'), array('.', '..'));

    а это Ъ
  • pissflaps

    Сообщения: 148 Репутация: N Группа: Кто попало

    Spritz 26 сентября 2010 г. 23:55, спустя 10 минут 40 секунд

    Абырвалг это с гугла )

Пожалуйста, авторизуйтесь, чтобы написать комментарий!