• Как восстановить потерянный коммит в bitbucket?

    Антон Шелестов, насколько я понял, локальная копия репозитория у тебя есть?
    Если так, то проще всего сделать так:
    выкачать локально последние изменения
    git fetch <ID последнего рабочего коммита>
    создать ветку для неё
    git branch last_work <ID последнего рабочего коммита>
    запушить её обратно в репозиторий
    git push origin last_work
    Написано
  • Разница между @~ и @^?

    Сергей Кузнецов,
    Я имел в виду что ^[n] эквивалентно ~[n]

    Это не так,
    ^[n] — это n-й прямой/непосредственный родитель коммита, нужен для того, чтобы правильно выбирать куда идти дальше у коммитов-слияний;
    ~[n] — это n-й предок коммита, если двигаться только по первому родителю в каждом предке;
    Если взять диаграмму из справки:
    G   H   I   J
     \ /     \ /
      D   E   F
       \  |  / \
        \ | /   |
         \|/    |
          B     C
           \   /
            \ /
             A

    То к F можно попасть двумя путями от A:
    • A^1^3 или A~^3
    • A^2~
    Написано
  • Как перебазировать разросшуюся ветку в git?

    Да, здесь эта опция лишняя, привык просто её указывать, когда приходится вручную граф коммитов собирать.
    Написано
  • Какой смысл писать комментарий к коммиту?

    TCloud,
    Как часто ты ищешь что-то, что было реализованно год назад?

    При каждом изменении старого кода:
    На таких проектах возникают вопросы типа "Почему это сделано? Почему это сделано так? Какие ещё изменения делались и где?". В идеальном мире на все эти вопросы отвечает документация, а в жизни приходится изучать контекст кода, чтобы при изменении не поломать неявно заданных тогда предположений, на которые 100% завязаны какие-то пользователи и процессы.
    Идентификатор задачи полезен, чтобы найти задачу, посмотреть какие цели тогда ставились. Но чем старше код, тем больше шансы, что произошёл рассинхрон: сменилась, например, неоднократно система планирования/багтрекер, и привязки потерялись. Я лично видел задачи, где после конверсии у старых задач терялись ссылки и приложенные файлы, в которых были постановки задач.
    А комментарии живут столько же, сколько и изменения.
    Написано
  • Удобные ежемесячные git commit отчеты?

    celovec, я в похожей ситуации использовал ToDoList -- у него есть опция включать счётчик времени работы по пункту.
    Потом просто прогонял логи через скрипт, получал .csv-файл и строил по ней табличку в Excel'е.
    В вашем случае можно просто завести пять пунктов и просто там отмечать время. Рекомендую туда же добавить пункты совещаний и созвонов.
    Логи коммитов никакому начальству на самом деле не нужны (бывают исключения, но они обычно сами могут посмотреть/поручить кому-нибудь), им нужен отчёт, что ты работал и результат.
    Написано
  • Чем плох md5(md5($pass)) для пароля?

    accountnujen,
    Много у нас радужных таблиц, который md5(md5())? а md5(md5(md5()))?

    Каждая (которая для md5). Это как раз базис сжатия радужных таблиц.
    Если известный пароль попал в радужную таблицу, то там есть и md5(…много раз… md5()…)))
  • Как добавить чужую ветку в проекте?

    Команду, в принципе, можно сократить до git checkout develop — она автоматически создаст локальную ветку develop, привяжет её к последнему коммиту из origin/develop и создаст связь между ними.
  • Как на мастер залить контент другой ветки, избежав всех конфликтов?

    Рекомендую почитать серию статей от Реймонда Чена (The Old New Thing) про гит.
    Там такие подходы очень хорошо разобраны.
    Вот, вроде первая: Mundane git commit-tree tricks, Part 1: Building a....
  • Можно ли выполнить make библиотеки в 32bit?

    al_sh, 32х битные и 64х битные это разные платформы: как минимум у них разный набор инструкций, разный набор подключаемых библиотек.
    Из вопроса не совсем ясно с какой целью осуществляется компиляция в 32 бита и где конечное ПО будет использоваться.
  • Как улучшить код на Си(сделать "красивше")?

    Причесал ещё немного:
    • убрал лишнее сравнение
    • добавил пропущенную проверку вызова библиотечной функции
    • убрал явное ограничение на длину считываемой строки
    • упростил логику управления выделенными ресурсами
    #include <stdio.h>
    #include <string.h>
    #include <malloc.h>
    
    #define FAIL(msg)    \
    do                   \
    {                    \
        perror(msg);     \
        goto cleanup;    \
    } while (0)
    
    static const char* choose(const char* left, const char* right)
    {
    	const size_t len_left = strlen(left);
    	const size_t len_right = strlen(right);
    	if (len_left > len_right)
    		return left;
    	if (len_right > len_left)
    		return right;
    	if (strcmp(left, right) < 0)
    		return right;
    	return left;
    }
    
    static const char* get_max(const char* n1, const char* n2, const char* n3)
    {
    	return
    	    choose(
    	        n1,
    	        choose(n2, n3));
    }
    
    int main()
    {
    	FILE* in = NULL;
    	FILE* out = NULL;
    	char* n1 = NULL;
    	char* n2 = NULL;
    	char* n3 = NULL;
    	const char* max_num = NULL;
    
    	in = fopen("input.txt", "r");
    	if (!in)
    		FAIL("Cannot open file 'input.txt'");
    
    	if (3 != fscanf(in, "%m[0-9] %m[0-9] %m[0-9]", &n1, &n2, &n3))
    		FAIL("Wrong input format");
    
    	max_num = get_max(n1, n2, n3);
    
    	out = fopen("output.txt", "w");
    	if (!out)
    		FAIL("Cannot open file 'output.txt'");
    
    	if (fprintf(out, "%s\n", max_num) < 0)
    		FAIL("Output to 'output.txt' fail");
    
    	fclose(in);
    	fclose(out);
    	free(n1);
    	free(n2);
    	free(n3);
    	return 0;
    
    cleanup:
    	if (in)
    		fclose(in);
    	if (out)
    		fclose(out);
    	if (n1)
    		free(n1);
    	if (n2)
    		free(n2);
    	if (n3)
    		free(n3);
    	return 1;
    }
  • Обработчик событий с мышки торзмозит отрисовку в pyqtgraph графиков с большим кол-вом точек (500К) - решение?

    Ну, выбор алгоритма фильтрации это деликатное дело. Главное в моём ответе — это вообще использование своей фильтрации, как показал наш опыт, не сразу до этого догадываешься, особенно, если полагаешься на готовый компонент построения графиков.