গিটে প্রতিশ্রুতিবদ্ধ আকার পাচ্ছেন?


9

প্রতিটি প্রতিশ্রুতি দ্বারা কতটা জায়গা ব্যবহৃত হয়েছিল তা খুঁজে পাওয়ার কোনও উপায় আছে? আমি যদি প্রতিশ্রুতিবদ্ধতার পরে চাপ দিই তবে আমি দেখতে পাব যে কত ডেটা প্রেরণ করা হয়েছে। এটি অনুমান করার একটি উপায়। তবে আরও ভাল উপায় থাকতে হবে।

গৃহীত সমাধান আমাকে নিম্নলিখিত ফলাফল দেয়:

$ ./git-commit-sizes 
1494 40eb8832156be81711f3816f04031cf3b8ef16b0 2
0 fbfb9f4c1f7ae403b9d8b4e194e384c6c41283ad 2
1961638 35e59833bad00edff2c5e8600eb4e62251606556 23
0 49cffee125318113d5dbe6f81e4ce12dcc07263d 2

প্রতিটি লাইন তিনটি তথ্য দিয়ে একটি প্রতিশ্রুতি প্রতিনিধিত্ব করে:

বাইট ব্যবহৃত, sha1 নাম, ফাইল পরিবর্তন করা হয়েছে


উত্তর:


10

প্রতিটি গিট কমিটের আকার নির্ধারণ করার জন্য এখানে পার্ল স্ক্রিপ্ট রয়েছে:

উত্সটি এখানে , আমি একটি পরিবর্তন যুক্ত করেছি:

#!/usr/bin/perl
foreach my $rev (`git rev-list --all --pretty=oneline`) {
  my $tot = 0;
  ($sha = $rev) =~ s/\s.*$//;
  foreach my $blob (`git diff-tree -r -c -M -C --no-commit-id $sha`) {
    $blob = (split /\s/, $blob)[3];
    next if $blob == "0000000000000000000000000000000000000000"; # Deleted
    my $size = `echo $blob | git cat-file --batch-check`;
    $size = (split /\s/, $size)[2];
    $tot += int($size);
  }
  my $revn = substr($rev, 0, 40);
#  if ($tot > 1000000) {
    print "$tot $revn " . `git show --pretty="format:" --name-only $revn | wc -l`  ;
#  }
}

আপনার গিট সংগ্রহস্থলে স্ক্রিপ্টটি শুরু করুন।

<path_to_script>/commit-size | awk '/\s80973c0/ {print $1 " bytes"}'  80973c0

আমার উদাহরণ:

± commit-size | awk '/\se920f35/ {print $1 " bytes"}'  
546 bytes

@ আরেকবালস্কি আপনি ঠিক বলেছেন
এবি

ভাল প্রশ্ন, ভাল উত্তর ... ;-)
ফাব্বি

@ এএব, আপনি কীভাবে perlআদেশ ছাড়াই পার্ল স্ক্রিপ্টটি চালাতে পারবেন ?
Iulian Onofrei

1
@ ইউলিয়ানঅনফ্রেই আপনার খুব কমপক্ষে পার্ল ইনস্টল করা দরকার। তবে প্রথম লাইনটি #!/usr/bin/perlশেলটিকে কী দোভাষী ব্যবহার করতে হবে তা জানায়। সুতরাং আপনি যদি স্ক্রিপ্টটিকে এক্সিকিউটেবল ( chmod +x path/to/script) এ সেট করেন , একটি শেল এটি চালিয়ে খুশি।
kjprice
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.