Как получить отправленные списки изменений за один день с помощью Perforce Python API

Я новичок в Perforce Python API и все еще нахожу свой путь через него. До сих пор я мог получить информацию об изменении списка, например номер, desc и т. Д., Если я предоставляю имя файла. Я пытаюсь получить список всех отправленных списков изменений для указанного диапазона дат / времени, чтобы я мог собирать информацию, как измененные файлы, и описание каждого списка изменений и т. Д. Есть ли способ сделать это с помощью API?

благодаря

    3 Solutions collect form web for “Как получить отправленные списки изменений за один день с помощью Perforce Python API”

    Из чтения менее обширной документации на P4Python и вопроса с форума Perforce этот код может сделать трюк, но имейте в виду, что он полностью непроверен **, так что предостерегайте emptor и все это

    В команде filelog ... кажется, способ запросить все файлы в папке, поэтому вам нужно только заменить server и folder соответствующими значениями.

     from P4 import P4, P4Exception p4 = P4() p4.port = "1" p4.user = "User" p4.client = "Client" try: p4.connect() changelist = p4.run_filelog('//server/folder/...@yyyy/mm/dd,@now') for r in changelist: print r.depotFile print r.revisions[0].time except P4Exception: for e in p4.errors: print e finally: p4.disconnect() 

    ** Да, я мог бы загрузить Perforce, установить его, добавить некоторые файлы и затем протестировать код, но это было похоже на умеренную степень излишества.

    Следующий код выводит список сегодняшних изменений на file.c:

     import subprocess import datetime curr = datetime.datetime.now() file = "file.c" cmd = 'p4 changes -s submitted %s@%s/%s/%s,@now' % (file, curr.year, curr.month, curr.day) print subprocess.check_call(cmd) 

    Обратите внимание, что перед выполнением сценария вы должны были установить P4PORT и P4USER в своей среде. Если вы не хотите устанавливать, вы можете использовать -p и -u для установки их в команде.

    В приведенном выше коде создается запрос для получения текущего списка изменений на file.c. Вы можете манипулировать датой и именем файла для достижения желаемого результата.

    Вы также можете использовать что-то вроде:

     from P4 import P4, P4Exception p4 = P4() p4.port = "A" p4.user = "B" p4.client = "C" try: p4.connect() changelist = p4.run_changes('//server/folder/...@yyyy/mm/dd,@now') # p4.run("change","//server/folder/...@yyyy/mm/dd,@now") works as well for c in changelist: print c.desc # or whatever you want, including: status, client, user, changelist... except P4Exception: for e in p4.errors: print e finally: p4.disconnect() 

    Для меня это кажется более правильным, так как он использует API P4Python и метод правильного запуска (вызывает команду изменения p4), и вы также получаете гораздо больше информации о каждом списке изменений.

    Чи

    Python - лучший язык программирования в мире.