יום שלישי, מרץ 27, 2012

להבין מה dropbox אומר

יש למישהוא מושג איך לשלוף אילו קבצים ומי שינה  מה בהתייחס ל dropbox ?
 מה שאני רוצה לעשות זה שכל שינוי קבצים שdropbox מבצע יגרום לgit commit ב rep הפרטי שלי.
המטרה הגדולה היא למנוע מצב שבגלל בעייה כלשהיא בהקשר לחשבון אני מאבד את היסטוריית השינוים בקבצים.

כיום אני מבצע git add . && git commit כל X זמן (פעולה שהיא יחסית מציקה), נכון שאני יכול להשתמש ב inotify אבל אני מחפש פתרון נוח יותר.

חשבתי להשתמש ב gitfs אבל אז הבנתי שזה לא בדיוק מה שאני צריך כי כל סגירת קובץ תבצע commit ולא יהיה לי את המידע הנוסף (שמגיע מdropbox).

אז פתחתי לי את  dbus-monitor וראיתי שכאשר יש הוספת קבצים יש ההודעה בdbus מה שאני מאמין יכול להכין את תוכן הקובץ או איזהשהוא מידע על השינויי:

method call sender=:1.83 -> dest=:1.23 serial=14 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
   string "Dropbox"
   uint32 0
   string ""
   string "nandroid.md5 added"
   string ""nandroid.md5" was added to your Dropbox folder. (click to view)"
   array [
      string "default"
      string "default"
   ]
   array [
      dict entry(
         string "y"
         variant             int32 15
      )
      dict entry(
         string "x"
         variant             int32 996
      )
      dict entry(
         string "icon_data"
         variant             struct {
               int32 16
               int32 16
               int32 64
               boolean true
               int32 8
               int32 4
               array of bytes [
                  00 5c 9e 00 00 5c 9e 00 00 5e a0 00 00 56 99 00 00 4c 91 67
                  00 4e 93 71 00 58 9c 00 00 5e 9f 00 00 5d 9f 00 00 59 9c 00
                  00 50 94 6f 00 4d 92 69 00 56 99 00 00 5e a0 00 00 5c 9e 00
                  00 5c 9e 00 00 5c 9e 00 00 5e a0 00 00 54 97 00 00 46 8c 5f
                  31 81 ba ff 2b 7c b6 ff 00 46 8e 3f 00 5c 9e 00 00 5c 9e 00
                  00 4a 8e 3b 24 79 b6 ff 2d 7f bc ff 00 45 8c 62 00 52 97 00
                  00 5e a0 00 00 5c 9e 00 00 5b 9d 00 00 49 8c 2a 05 58 9b c0
                  50 9b d5 ff a7 dd ff ff bb e5 ff ff 40 86 bb ff 00 3e 89 44
                  00 44 89 42 27 7b bb ff 89 cf ff ff a2 db ff ff 67 a6 d5 ff
                  07 59 9b c3 00 43 8c 2c 00 5b 9d 00 05 5c 9e 97 31 84 c5 ff
                  6b bb f6 ff 8e d0 ff ff 86 c3 f0 ff a2 d2 f5 ff c4 e7 ff ff
                  50 90 c0 ff 15 75 bf ff 66 bf ff ff 78 c1 f6 ff 80 c0 f0 ff
                  b0 df ff ff a9 d7 f6 ff 5c 97 c5 ff 0b 5d 9e 98 08 5b 9e dc
                  58 b0 f0 ff 84 d0 ff ff 78 bc f0 ff 83 c2 f0 ff 88 c3 ee ff
                  b1 d7 f3 ff f9 ff ff ff ca ec ff ff 6d ba f3 ff 58 ae ee ff
                  7b be f0 ff 91 c7 f0 ff d2 f2 ff ff a6 d4 f0 ff 11 5d 9e de
                  00 54 96 00 00 4e 91 9e 44 98 d5 ff 84 c9 fc ff 85 c3 f1 ff
                  b7 db f6 ff e9 f4 fc ff e9 f5 fd ff db ee fd ff df ef fc ff
                  a8 d5 f6 ff 7c bf f1 ff a3 d6 fc ff 6c aa d6 ff 00 4a 91 a1
                  00 51 96 00 00 5e a0 00 00 54 97 00 00 38 7f 9e 43 94 d1 ff
                  de f6 ff ff f5 fc ff ff e0 ef fb ff e0 f0 fb ff c8 e5 fb ff
                  cf e7 fb ff ff ff ff ff fe ff ff ff 56 9d d2 ff 00 32 80 a2
                  00 51 96 00 00 5f a0 00 00 57 99 00 00 49 8c 71 39 89 c3 f1
                  59 b0 f2 ff 52 aa ef ff bc de f7 ff f9 fc fe ff e3 f2 fb ff
                  d3 ea fc ff f5 fb ff ff b7 db f7 ff 64 b1 ed ff 86 c3 f2 ff
                  52 93 c4 f3 00 44 8d 75 00 54 99 00 06 5a 9d b3 49 a0 e0 ff
                  8a d2 ff ff 65 b5 f2 ff 2f 97 e8 ff 4b a4 e9 ff 9c cd f0 ff
                  f6 f9 fc ff d6 ec fc ff 58 ab f0 ff 15 8a e6 ff 39 9b e6 ff
                  8c c6 f1 ff d1 f0 ff ff 8b be e1 ff 0e 5c 9d b6 07 5d 9f c1
                  44 98 d9 ff 85 cd ff ff 6d bc f9 ff 3b 9d e9 ff 5e ae ec ff
                  6c b3 e8 ff b7 d9 f2 ff 43 a2 ef ff 00 73 e5 ff 33 99 ea ff
                  4c a3 e7 ff 96 ce f9 ff c7 eb ff ff 81 b3 d9 ff 10 5f 9f c4
                  00 58 9a 00 00 48 8b 55 1e 71 ad ee 52 a8 e8 ff 41 a4 f1 ff
                  60 ae ea ff a9 d3 f2 ff c8 e4 f8 ff 68 b7 f2 ff 40 a2 ed ff
                  2c 95 e8 ff 51 aa ef ff 7c ba e9 ff 2a 75 ae f1 00 41 8b 58
                  00 56 9a 00 00 5c 9e 00 00 5d 9f 00 00 3e 84 0c 22 76 b3 ff
                  9b db ff ff 97 cf f8 ff ce e6 f8 ff c5 e1 f7 ff 65 b5 f1 ff
                  74 bc f0 ff 75 be f5 ff a9 de ff ff 30 7b b0 ff 00 3a 85 0f
                  00 5d 9f 00 00 5d 9e 00 00 5c 9e 00 00 5c 9e 00 00 59 9c 00
                  02 53 97 7a 48 89 bf ff b8 e3 fd ff e8 fb ff ff c2 df f7 ff
                  60 b3 f1 ff 82 cb ff ff a1 d3 f7 ff 4a 88 b8 ff 00 53 96 72
                  00 5a 9d 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00
                  00 5d 9f 00 00 5b 9d 00 00 43 8b 2a 08 57 9b c5 8c b9 da ff
                  ea fd ff ff 80 cb ff ff 47 97 d4 ff 03 57 99 bc 00 45 8d 22
                  00 5b 9e 00 00 5d 9f 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00
                  00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5f a0 00 00 51 96 00
                  00 43 8d 69 3e 88 bd ff 2c 7f bb ff 00 47 8c 60 00 54 98 00
                  00 5e a0 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00
                  00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00
                  00 5f a0 00 00 52 98 00 00 49 92 72 00 50 92 6e 00 56 99 00
                  00 5e a0 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00 00 5c 9e 00
                  00 5c 9e 00
               ]
            }
      )
   ]
   int32 -1
method return sender=:1.23 -> dest=:1.83 reply_serial=14
   uint32 6
signal sender=:1.23 -> dest=(null destination) serial=941 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=NotificationClosed
   uint32 6
   uint32 1
תוכן הקובץ היינו :
61bf924dc733f0ba0b8efb939ad76080  boot.img
74344b92d55334df38176bd6f386b822  cache.ext4.tar
82e1505c3eaceb04445231acdc007f48  data.ext4.tar
96995b58d4cbf6aaa9041b4f00c7f6ae  recovery.img
3f3435b5dc55508e23afc6233465699f  system.ext4.tar
e55853931599a03c49c424f2a0ed9b34  .android_secure.vfat.tar

ממה שאני מבין קיימת פה כותרת וסיומת למידע (זה לא נראה כמו padding אלה יותר ככותרת המכילה מידע חיוני).

במצב אופטימלי הייתי מקבל את שם המשתמש שביצע את השינוי רק שאני לא יודע איך להשיג את המידע הנל.

2 comments:

  1. דרך האתר שלהם אתה יכול לראות גרסאות קודמות של הקבצים ומי שינה ומתי. פשוט תבחר את הקובץ ואז תלחץ למעלה על Revisions (אם זו היתה כוונת המתכנת..)

    השבמחק
  2. אין זו כוונת המשורר :

    אני מודע לאפשרות של שימוש חיצוני באתר אולם אני מעוניין להמנע מזה ולהשתמש רק בתהליכים שרצים ועובדים על המחשב שלי ולתקשר עימם.

    אני מעוניין לדעת לפרש את המידע שהתהליך מפרסם למערכת בזמן ריצתו.

    השבמחק