اطلاعاتی که باید جمع شود
لوکال هیستوری کاربر:
- اسم پروژه، پکیج، فایل، کلاس
- زمان تغییر
- فرد تغییر دهنده کد
- نوع تغییر (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