انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: captain-ballard: ناظری بر پروژه های گیت سیستم شما  (دفعات بازدید: 1632 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین Stackoverflow

  • Jr. Member
  • *
  • ارسال: 39
  • جنسیت : پسر
مدت ها قبل بود که بر اثر تصادفی تمام اطلاعات دیسک مو از دست دادم. پروژه هایی که ماه ها روشون کار کرده بودم. ایده هایی که پرورش داده بودم.. همه و همه در کسری از ثانیه از بین رفتن.

این اتفاق ناگوار منو واداشت برنامه ای تولید کنم که پروژه های گیت مو به صورت لحظه ای مانیتور کنه و پس از مدت زمان معینی(که قابل تنظیم هست) از کل پروژهام یه status بگیره.
با این کار همیشه حواسم هست که پروژه هام در چه مرحله ای هستن و اگه لازم بود میتونم تغییرات رو کامیت/پوش کنم.
اطلاعات بیشتر:
https://github.com/LinArcX/captain-ballard
بسته آرچ:
https://aur.archlinux.org/packages/captain-ballard/
بسته void-linux:[در حال بسته بندی]
https://github.com/void-linux/void-packages/pull/14916
« آخرین ویرایش: 10 مهر 1398، 02:07 ق‌ظ توسط LinArcX »

آفلاین nino

  • Full Member
  • *
  • ارسال: 224
  • جنسیت : پسر
    • Gitlab
یعنی به صورت دوره ای از دایرکتوری های گیت بک آپ می گیره یا فقط status رو نشون میده؟
...

آفلاین Stackoverflow

  • Jr. Member
  • *
  • ارسال: 39
  • جنسیت : پسر
فقط وضعیت رو نشون میده.

آفلاین nino

  • Full Member
  • *
  • ارسال: 224
  • جنسیت : پسر
    • Gitlab
خوب از اون جایی که بیشتر وقت رو توی ترمینال سر می کنیم من prompt رو در bashrc تغییرات کوچیکی دادم تا بدون نیاز به نصب zsh و powerline بشه همیشه از وضعیت گیت باخبر باشم:
PS1='[\u@\h \W]\$ \[\033[38;5;34m\]$(if_git)\[\033[0m\] '                                                                                   
                                                                                                                                           
if_git(){                                                                                                                                   
  if [[ -d "./.git" ]]; then                                                                                                               
    logo=""                                                                                                                               
    cur_branch="$(git branch -a 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/   \1/')"                                                 
                                                                                                                                           
    if [[ "$cur_branch" == "   master" ]]; then                                                                                           
      cur_branch=""                                                                                                                         
    fi                                                                                                                                     
                                                                                                                                           
    if [[ "$(git status -s)" ]]; then                                                                                                       
      if [[ "$(\git status | \grep -i 'is ahead of')" ]]; then                                                                             
        commits_ahead=" $(\git status | \grep -i 'is ahead of' | awk '{ print $(NF - 1) }')"                                               
      else                                                                                                                                 
        commits_ahead=" "                                                                                                                 
      fi                                                                                                                                   
      if [[ "$(git status -s | \grep '^ M\|^ D' | wc -l)"  -gt "0" ]]; then                                                                 
        unstaged=" $(git status -s | \grep '^ M\|^ D' | wc -l)"                                                                           
      else                                                                                                                                 
        unstaged=" "                                                                                                                       
      fi                                                                                                                                   
      if [[ "$(git status -s | \grep '^M\|^A\|^D\|^R' | wc -l)" -gt "0" ]]; then                                                           
        staged=" $(git status -s | \grep '^M\|^A\|^D\|^R' | wc -l)"                                                                       
      else                                                                                                                                 
        staged=" "                                                                                                                         
      fi
      if [[ "$(git status -s | \grep '??' | wc -l)" -gt "0" ]]; then                                                                       
        untracked=" $(git status -s | \grep '??' | wc -l)"                                                                                 
      else                                                                                                                                 
        untracked=" "                                                                                                                     
      fi                                                                                                                                   
      echo " ${logo}${cur_branch}  $unstaged  $staged  $untracked  $commits_ahead "                                                         
    else                                                                                                                                   
      if [[ "$(\git status | \grep -i 'is ahead of')" ]]; then                                                                             
        commits_ahead=" $(\git status | \grep -i 'is ahead of' | awk '{ print $(NF - 1) }') "                                             
        echo " ${logo}${cur_branch}  $commits_ahead"                                                                                       
      else                                                                                                                                 
        echo " ${logo}${cur_branch}  "                                                                                                     
      fi                                                                                                                                   
    fi                                                                                                                                     
  fi ; return ;}
...

آفلاین Stackoverflow

  • Jr. Member
  • *
  • ارسال: 39
  • جنسیت : پسر
این هم راه حلی هست. منتهی captain-ballard قادره چندین پروژه رو مانیتور کنه. و تو زمان های مشخصی به شما آخرین وضعیت شونو نشون بده.

ویرایش: البته من یه هدف جانبی هم داشتم. آشنایی بیشتر با زبان سی و همین طور توسعه بوسیله gtk. و در این بین کلی چیزهای جدید یاد گرفتم که به نظرم ارزش شو داشت این پروژه رو توسعه بدم.
برای نیاز شخصی م بسیار عالی هست. و البته ممکنه خیلی ها روش های دیگه ای رو ابداع کنن که منطقی هم هست.
« آخرین ویرایش: 10 مهر 1398، 10:47 ق‌ظ توسط LinArcX »