Action unknown: backlinkmenuitem

اطلاعاتی که باید جمع شود

لوکال هیستوری کاربر:

  • اسم پروژه، پکیج، فایل، کلاس
  • زمان تغییر
  • فرد تغییر دهنده کد
  • نوع تغییر (insert, delete, update)،
  • خود کد
  • آی‌دی فایل دامپ
  • اسم تابع
  • تایپ متغیر‌های دخیل در تغییر
  • (مهم) زمان run کردن کد
  • استاتوس کد
  • متن پیغام ارور

اطلاعات کاربر:

  • آی‌دی
  • ایمیل

متادیتا:

  • تعداد خط‌های تغییر یافته
  • حجم تغییر
  • کتابخانه‌های مورد استفاده داخل کد

اولی که کد ارسال میشه یه dump از کل فایل‌ها بفرسته. بپرسه اگر تایید کرد کل دایرکتوری را آپلود کند.

داشتن کیو از جی‌سان‌ها. به یه تعدادی که رسید بفرسته.

نحوه نگه‌داری اطلاعات روی سرور

  • سرور RDS از نوع mysql

یو آر ال‌ها

منوی برنامه و تنظیمات سمت کاربر

  • متن پرایوسی پالیسی و توضیح درباره موارد مصرف این برنامه (فارسی و انگلیسی؟)

قسمت‌های مهم داخل کد

  • Vcs.History → Vcs.History.ShowAllAffected
  • VcsHistoryActionGroup → Uml.ShowDiff
  • LocalHistory → LocalHistory.ShowHistory
  • ChangeViewPopupMenu → ChangeView.Diff
  • ChangeViewToolbar → UML.ShowChanges
  • CvsActions → Vcs.ShowHistoryForBlock
  • Diff.KeymapGroup → Diff.ShowDiff
  • import com.intellij.openapi.vcs
  • import com.intellij.openapi.localvcs
  • import com.intellij.openapi.application.ApplicationManager
  • import com.intellij.history.core.changes.ChangeSet
  • import com.intellij.openapi.actionSystem.AnAction
  • import com.intellij.history.LocalHistory

جایی که اطلاعات مورد نظر ما توش بود:

  • import com.intellij.history.integration.LocalHistoryImpl;

مثلا یه تابع داشت به این اسم که محل ذخیره شدن اطلاعات تغییرات رو برمیگردوند:

System.out.println(LocalHistoryImpl.getInstanceImpl().getStorageDir());

یا یه تابع داشت که کارش پاک کردن تاریخچه localhistory کاربر بود:

LocalHistoryImpl.getInstanceImpl().cleanupForNextTest();

بعد با فراخوانی تابع فهمیدیم محل storageش اینجا هست:

/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/system/LocalHistory

تو این پوشه ۲ تا فایل بود به این نام‌ها:

changes.storageData         changes.storageRecordIndex

اولی یه حالت باینری طوری داشت و بینش یه سری فایل‌های xml مربوط به لاگ و آمار های سیستم بود. همچنین در این فایل محل فایلی که تغییر کرده بود روی سیستم مشخص بود.

/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/statistics.application.usages.xml
/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/window.manager.xml
/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/feature.usage.statistics.xml
/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/dimensions.xml
/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/runner.layout.xml

توی این فایل:

/home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/config/options/statistics.application.usages.xml

یه سری اطلاعات مثه اینکه چند بار intellij باز شده یا چند بار پروژه ران شده بود که چند بار پروژه ران شده با این سینتکس بود:

<entry feature="execute.Application.Run" count="9" />

این فایل رو با تیل باز کردیم تا تغییراتش رو ببینیم:

tail -f /home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/system/LocalHistory/changes.storageData

این فایل لاگ‌های بیلد توش قرار میگیره:

tail -f /home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/system/log/build-log/build-log.properties
tail -f /home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/system/log/build-log/build.log
tail -f /home/smmsadrnezh/.IntelliJIdea14/system/plugins-sandbox/system/log/idea.log