8000 GitHub - gdemin/git2r_autocommt
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gdemin/git2r_autocommt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Я в исследовательских задачах часто забываю создать репозиторий. А если создам, то забываю коммитить. А потом хочется посмотреть, что было раньше - а истории-то и нет. В результате стал добавлять такой код в конце маркдаунов. С помощью пакета git2r он:

  1. Инициализирует репо, если его нет
  2. Создает .gitignore файл, если его нет
  3. При каждом рендеринге markdown-файла коммитит изменения
  4. В конце документа будет его версия в системе контроля версий

А если делаем модель, удобно добавить в сообщение коммита текущее значение метрики модели.

# здесь мы автоматически записываем изменения в git
# таким способом можно будет отслеживать все модификации расчетов
if(!git2r::in_repository()){
    # если мы не в репозитории, то создаем его
    git2r::init()
}
# задаем пользователя, от которого будем коммитить
git2r::config(user.name = "user", user.email = "user@email.org")
if(!file.exists(".gitignore")){
    # если не существует файла .gitignore, то создаем его
    writeLines(c(".Rproj.user", ".Rhistory", ".RData", ".Ruserdata", "data/", "secret"),
              con = ".gitignore")
}
# добавляем все файлы для коммита
git2r::add(path = "*")
git_status = git2r::status()
# проверяем, есть ли что коммитить
if(length(git_status$staged)>0){
    #  если есть что коммитить, то коммитим
    commit_info = git2r::commit(message = paste("Autocommit", Sys.time()), all = TRUE)
} else {
    # если все по-старому, то в качестве версии берем последний коммит
    commit_info = git2r::last_commit()
}
commit_info = format(commit_info)
cat("Версия", commit_info, "\n")

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0